本文介绍基于Python语言,统计文件夹中文件数量;若其含有子文件夹,还将对各子文件夹中的文件数量一并进行统计的方法。
最近,需要统计多个文件夹内部的文件数量,包括其中所含子文件夹中的文件数量。其中,这多个需要统计文件数量的文件夹都放在一个总文件夹内。
这一操作基于Python来实现是非常方便、快捷的。话不多说,我们对相关的Python代码来进行详细介绍。
代码语言:javascript复制import os
target_path='H:/2020/'
all_content=os.listdir(target_path)
print('All content numbers is',len(all_content))
count_num=1
for content in all_content:
if os.path.isdir(target_path content):
all_sub_content=os.listdir(target_path content)
if len(all_sub_content)!=361:
print(count_num,content,'sub content number is',len(all_sub_content))
count_num=count_num 1
可以看到,代码是非常非常简洁的。
首先,target_path
是我们的总文件夹路径,用os.listdir
来获取总文件夹下面的全部内容(包括文件与子文件夹),并打印总文件夹下全部内容的数量(包括文件与子文件夹数量)。随后,用if
判断与isdir
函数来获取总文件夹下的全部子文件夹,并对子文件夹依次利用同样的方式来获取其内部文件的数量,并打印出来。
其中,上述代码的以下部分:
代码语言:javascript复制 if len(all_sub_content)!=361:
print(count_num,content,'sub content number is',len(all_sub_content))
count_num=count_num 1
是我为了方便,直接对不满足文件个数为361
的子文件夹加以筛选,从而只输出文件个数非361
的子文件夹名称;如果大家只是需要对每一个文件夹或子文件夹中的文件个数加以统计而不需要进行筛选,将这一部分的if
判断语句去掉就可以啦~
上面是对代码的初步介绍,如果大家还是不太清楚,可以查看具体的分步骤解释如下:
import os: 引入 os 模块以访问操作系统中的文件和目录 target_path = 'H:/2020/': 将文件路径存储在变量 target_path 中 all_content = os.listdir(target_path): 使用 os 模块中的 listdir() 函数列出 target_path 中的所有内容,并将结果存储在变量 all_content 中 print('All content numbers is', len(all_content)): 输出所有内容的数量,使用内置函数 len() 获取 all_content 的长度 count_num = 1: 初始化变量 count_num 为 1,用于输出信息时计数 for content in all_content:: 遍历 all_content 中的每个内容 if os.path.isdir(target_path content):: 检查 content 是否是一个子目录,使用 os 模块中的 isdir() 函数 all_sub_content = os.listdir(target_path content): 如果是子目录,则使用 listdir() 函数列出子目录中的所有内容,并将结果存储在变量 all_sub_content 中 if len(all_sub_content) != 361:: 如果子目录中的文件数量不足 361,则执行下一步 print(count_num, content, 'sub content number is', len(all_sub_content)): 输出当前检查的子目录的名称和文件数量,并将计数器 count_num 增加 1 循环结束后,函数执行结束
最后,可以看到上述代码我是直接将结果打印出来的;如果实际情况中文件或文件夹数量很多,大家需要将结果输出到.csv
等Excel文件中的话,可以直接参考文章基于Python TensorFlow Estimator DNNRegressor的深度学习回归的2.9部分,这里就不再赘述啦。