Python не печатает все файлы в каталоге с помощью os.listdir

#python

#python

Вопрос:

введите описание изображения здесь

 import os


class Utilities:

    def __init__(self, filepath, archive, recursion):
        self.filepath = filepath
        self.archive = archive
        self.recursion = recursion


    def filepath(self):
        filelist = []
        filename = os.listdir(self.filepath)
        for file in filename:
            filelist.append(file)
            print(filelist)


if __name__ == '__main__':
    u = Utilities('C:_EmailDownloader', 'C:_EmailDownloader_OUT', 'C:_EmailDownloader_ARCHIVE')
    print(u.filepath)
  

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

1. Вы намерены print использовать оператор внутри вашего цикла for, а не после выполнения цикла?

2. Добро пожаловать в SO. u.filepath это метод. Вам нужно вернуть список файлов в filepath методе.

3. И поскольку filename это итератор, вам даже не нужен цикл for . filelist = list(filename) . И, наконец, не забывайте a return в конце, если вы действительно не хотите их просто распечатать.

4. Спасибо вам обоим, Фрэнк и Эвонг. Вы двое великолепны! Я даже не осознавал, что вызывал метод filename в качестве одного из атрибутов класса init . Также приятно знать, что мне даже не нужен этот цикл for!