首页 > 解决方案 > 计算 Python 中子目录或文件的数量

问题描述

所以我需要计算目录中的子目录数量或文件数量(取决于用户想要做什么)(递归和非递归)。我是用 C# 做的,但我对 Python 很陌生。我找到了这个:

(len([f for f in os.listdir(directory)]))

但是这段代码计算了目录中的所有内容(文件、子目录),而我只需要子目录或文件,但不需要它们在一起。有解决这个问题的功能吗?提前感谢所有回复!

标签: pythondirectorysubdirectory

解决方案


使用 pathlib 的 glob 方法:

from pathlib import Path

path = Path(your_path)
num_of_sub_dirs, num_of_files = 0, 0
# if you want to check inside sub-directories as well, then use path.rglob('*')
for f in path.glob('*'): 
    print(f.name)
    if f.is_dir():
        num_of_sub_dirs += 1
    if f.is_file():
        num_of_files += 1

print(num_of_sub_dirs, num_of_files)

推荐阅读