Каковы возвращаемые значения os.walk () в python? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть такая структура каталогов:

dir/
└── subdir

Мой код:

import os

for d in os.walk('dir'):
    print(d)

Я получаю вывод:

('dir', ['subdir'], [])
('dir/subdir', [], [])

Мой вопрос в том, чтоэто те, кто тянется [] s?

В первом кортеже 1, а во втором 2 ... это меня смущает.

1 Ответ

0 голосов
/ 07 декабря 2018

Стоит проверить документы Python на подобные вопросы, поскольку они, как правило, имеют довольно солидную документацию: https://docs.python.org/2/library/os.html#os.walk

Генерация имен файлов в дереве каталогов путем обхода дерева либо сверху, либовниз или снизу вверх.Для каждого каталога в дереве с корнем в каталоге top (включая сам top ) он выдает 3-кортеж (dirpath, dirnames, filenames).

всегда возвращайте три кортежа.

Для вашего первого каталога 'dir', он содержит один каталог с именем 'subdir' и не содержит никаких файлов, поэтому есть пустой список имен файлов.

Затем он имеет другую запись для subdir, которая является вашим 'dir / subdir'.'subdir' не имеет никаких каталогов или файлов, поэтому у вас есть пустые списки для каталогов и имен файлов.Ключевым моментом является то, что он всегда возвращает 3-кортеж, а последние два элемента всегда являются списками, поэтому нет подкаталогов или файлов, он будет возвращать пустые списки.

...