在python中使用OS.Walk计数子文件夹

问题描述

我想学习如何在os.walk进入另一个文件夹时进行计数。现在,我可以计算文件名中的文件数,但是当它从起始目录切换到另一个文件夹目录时,我希望将一个计数添加到子文件夹中。我不确定执行此操作的最佳方法。任何帮助将不胜感激。

count = 0 
subfolder_count = 0 

for foldername,subfolders,filenames in os.walk('articles'):
    for file in filenames:
        if file.endswith('.pdf'):
            count += 1

解决方法

您已经在迭代,只要继续迭代即可!

count = 0
subfolder_count = 0

for root,dirs,files in os.walk('articles'):
    for dir_ in dirs:
        subfolder_count += 1
        for file_ in files:
            if file_.endswith('.pdf'):
                count += 1

在现代Python(3.4及更高版本)中,您甚至不需要os.walk,因为pathlib涵盖了两次遍历树的小开销。.

import pathlib

path = pathlib.Path('articles')
subfolder_count = len(path.glob("**/"))
count = len(path.glob("**/*.pdf"))