【问题标题】:Count number of files in end directories using Python使用 Python 计算最终目录中的文件数
【发布时间】:2019-01-16 10:18:00
【问题描述】:
我有一个树形结构存档的图像数据集,其中不同级别文件夹的名称是这些图像的标签,例如
/Label1
/Label2
/image1
/image2
/Label3
/image3
/Label4
/image4
/image5
那么我如何计算每个结束文件夹中的图像数量。在上面的例子中,我想知道文件夹/Label1/Label2、/Label1/Label3和Label4中有多少张图片。
我检查了函数os.walk(),但似乎没有简单的方法来计算每个单独的结束文件夹中的文件数。
谁能帮帮我,提前谢谢你。
【问题讨论】:
标签:
python
operating-system
filesystems
【解决方案1】:
您可以使用os.walk():
import os
c=0
print(os.getcwd())
for root, directories, filenames in os.walk('C:/Windows'):
for files in filenames:
c=c+1
print(c)
输出:
125765
>>>
如果子目录中有多种文件格式,可以使用运算符并检查 jpeg、png,然后递增计数器。
【解决方案2】:
我查看了函数os.walk(),但似乎没有简单的方法来计算每个单独的最终文件夹中的文件数。
当然有。只是len(files)。
我不是 100% 确定您所说的“结束目录”是什么意思,但如果您想跳过不是叶子的目录(即具有子目录的目录),这同样简单:if not dirs。
最后,我不知道您是否想打印出计数,将它们存储在以路径为键的字典中,将它们加起来,或者什么,但这些都非常简单,所以这里有一些代码三者皆为例子:
total = 0
counts = {}
for root, dirs, files in os.walk(path):
if not dirs:
print(f'{root}: {len(files)}')
counts[root] = len(files)
total += len(files)