Мне нужно создать двумерный массив, но почему-то мой код не работает. В сам массив элементы добавляются (в цикле), но если попытаться вывести его через print после цикла, ничего не происходит.
def sub_open(path_rar, path_corp):
if not os.path.exists(path_corp):
os.makedirs(path_corp)
for root,dirs,files in os.walk(path_rar):
for folder in dirs:
print(folder)
file = file_corp(path_corp, folder)
alligns = allign_times('.//Extracted_Data//', folder, file)
print(alligns) - здесь тоже ничего не выводит((((
def allign_times(path_rar, folder, sub_corpus):
alligns = []
for root,dirs,files in os.walk(path_rar + folder + '//'):
for file in files:
print(file) ############
sub_file = open(path_rar + folder + '//' + file, 'r').read()
times = re.findall('\d\d:\d\d:\d\d,\d\d\d --> \d\d:\d\d:\d\d,\d\d\d', sub_file)
data_times, data_reverse = transform(times) ##
vals = [i for i in sorted(list(data_times.values()))]
vals1 = [i for i in sorted(list(data_times.keys()))]
allphrases = piece_to_file(data_times, sub_file, times, vals, data_reverse, vals1)##
#print(allphrases) - тут находятся элементы и выводятся
alligns.append(allphrases) - вроде как добавляем
#print(alligns) - тут печатает
#print(alligns) - выходим из цикла и после принта вообще ничего не выводит
return alligns
Как решить эту проблему? Где ошибка? Как сделать так, чтобы выводился нормальный двумерный массив, когда вызываешь функцию внутри функции sub_open?
Буду благодарен за ответ!
Ответ
Вы должны создать массив alligns вне тела функции, так как сейчас это - локальная переменная функции allign_times. Объявите её в самом начале файла (до функций), и в каждой из них в первой строчке напишите global alligns
Комментариев нет:
Отправить комментарий