Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Не создается двумерный массив! Python3

#python #массивы #python_3x


Мне нужно создать двумерный массив, но почему-то мой код не работает. В сам массив
элементы добавляются (в цикле), но если попытаться вывести его через 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?
Буду благодарен за ответ!
    


Ответы

Ответ 1



Вы должны создать массив alligns вне тела функции, так как сейчас это - локальная переменная функции allign_times. Объявите её в самом начале файла (до функций), и в каждой из них в первой строчке напишите global alligns.

Комментариев нет:

Отправить комментарий