gpt4 book ai didi

python - 如何在python中迭代目录中的子目录并统计子目录中的文件数

转载 作者:太空宇宙 更新时间:2023-11-03 17:12:40 25 4
gpt4 key购买 nike

我想迭代目录中的子目录并获取每个子目录中的文件数。我的(困惑的)解决方案如下所示:

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的不同问题,但是当我尝试大多数解决方案时,每个子目录的文件数量只有一个,并且我假设该目录被计为文件。任何关于如何更好地做到这一点的帮助将不胜感激。

最佳答案

您可以按如下方式重新编码以显示每个文件夹中的文件数量:

import os

def Count_files_in_subd():
for root, dirs, files in os.walk("/Path/to/directory"):
print "{} in {}".format(len(files), root)

Count_files_in_subd()

root 保存当前正在遍历的文件夹,而 files 已经保存该文件夹中的所有文件,因此您需要对它们进行计数的是 len(文件)

dirs 保存在当前文件夹(接下来将访问)中找到的所有文件夹。如果您不想访问某个文件夹,可以将其从此列表中删除。

这将为您提供以下类型的输出:

5 in /Path/to/directory
10 in /Path/to/directory/folder_1
3 in /Path/to/directory/folder_1/deeper

关于python - 如何在python中迭代目录中的子目录并统计子目录中的文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33939196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com