Я искал везде для ответа, но не могу найти его.Как проверить, содержит ли папка файлы с использованием python 3
Я пытаюсь создать сценарий, который будет искать конкретную подпапку, а затем проверить, содержит ли она какие-либо файлы и если да, напишите путь к папке. Я понял, что часть поиска вложенных папок вычислена, но проверка файлов преследует меня.
Я нашел несколько предложений о том, как проверить, что папка пуста, и я попытался изменить сценарии, чтобы проверить, не является ли папка пустой, но я не получаю правильных результатов.
Вот сценарий, который пришел ближе:
for dirpath, dirnames, files in os.walk('.'):
if os.listdir(dirpath)==[]:
print(dirpath)
Это перечислит все вложенные папки, которые являются пустыми, но если я пытаюсь изменить его на:
if os.listdir(dirpath)!=[]:
print(dirpath)
она будет перечислять все - не только вложенные папки, содержащие файлы.
Я был бы очень признателен, если бы кто-то мог указать мне в правильном направлении.
Это для Python 3.4, если это имеет значение.
Спасибо за любую помощь, которую вы можете мне дать.
Под «пустым» вы подразумеваете «не содержит ничего (кроме' .' и '..')» или «не содержит ничего, кроме подкаталогов», или «не содержит никаких обычных файлов», , или "не содержит никаких скрытых обычных файлов" или что-то другое? – abarnert
Между тем, почему вы используете 'os.walk', а затем также используете' os.listdir' на каждом 'dirpath'?У вас уже есть 'dirnames' и' files'; зачем вызывать функцию, чтобы получить ту же самую информацию, которую у вас уже есть? – abarnert
Наконец, вы почти никогда не хотите проверять '! = []' Или '== []'. Просто используйте тот факт, что пустые последовательности являются ложными, а непустые последовательности правдивы: 'if not os.listdir (dirpath):' будет делать то, что вы хотите. – abarnert