我正在尝试获取目录中文件和文件夹的数量。我找到了os.walk((,它只对根目录执行操作。我尝试了以下操作,但我需要创建两个列表,检查它是文件还是文件夹,并对它们进行计数。
pathlib.Path(src).glob('**/*')
我找不到一种简单有效的方法来完成这样一项简单的任务。我觉得我错过了什么。有什么建议吗?
lst = [*map(lambda x: x.is_dir(), pathlib.Path(src).rglob('*'))]
sum(lst), len(lst) - sum(lst) # number of dirs, number of files
这就是你要找的吗?
os.walk
是一个生成器,您需要迭代它的结果:
{p: {"directories": len(directories),
"files": len(files)}
for p, directories, files in os.walk(root_dir)}
您可以使用os.walk()
。它递归地迭代一个目录,每次迭代都返回一个目录路径以及该路径上的文件和目录数量。把它们加起来:
import os
dirs_cnt = 0
files_cnt = 0
for path,dirs,files in os.walk('.'): # Current directory
dirs_cnt += len(dirs)
files_cnt += len(files)
print(f'Total: dirs={dirs_cnt} files={files_cnt}')