Я хочу перебирать подкаталоги в каталоге и получать количество файлов в каждом из подкаталогов. Мой (грязный) решение выглядит следующим образом:Как перебирать подкаталоги в каталоге и подсчитывать файлы в подкаталогах в python
import os, sys
import subprocess
def Count_files_in_subd():
for root, dirs, files in os.walk("/Path/to/directory", topdown=False):
for name in dirs:
print name
f = os.path.join(root, name)
os.chdir(f)
i=0
for filename in os.listdir(os.getcwd()):
i+=1
print i
Count_files_in_subd()
Сценарий первый смотрит на подкаталоги в каталоге один за другим, а не изменения в каталог он «смотрит на», сосчитать файлы внутри.
Это работает, но я знаю, что в python есть более хороший способ сделать это. Я просмотрел разные вопросы по SO, но когда я пробовал большинство решений, количество файлов для каждого подкаталога было всего одним, и я предполагаю, что каталог считается файлом. Любая помощь в том, как сделать это лучше, будет оценена по достоинству.
Благодарим Вас за объяснений, у меня была ошибка в моем мышлении :-) –
Да, что верно, лучше имена переменных будет 'dirpath',' 'dirnames' и filenames'. Вы передаете корень функции 'os.walk'. –