目标:
统计文件夹目录下的文件类型及数量,包括子文件夹,并用函数的方式来实现。
思路:
●打开指定的文件夹
● 获取到当前文件夹下面所有的文件
● 进行判断,如果判断为文件夹,则递归,如果判断为文件,则统计类型和计数。
●汇总显示
实现代码如下:
import os
#文件夹中的文件计数函数
def file_count(local_path, type_dict):
global all_file_num # 声明全局变量
file_list = os.listdir(local_path) # 列出本地文件夹第一层目录的所有文件和目录
for file_name in file_list:
if os.path.isdir(os.path.join(local_path, file_name)): # 判断是文件还是目录,是目录为真
type_dict.setdefault("文件夹", 0) # 如果字典key不存在,则添加并设置为初始值
type_dict["文件夹"] += 1
p_local_path = os.path.join(local_path, file_name) # 拼接本地第一层子目录,递归时进入下一层
file_count(p_local_path, type_dict)
else:
ext = os.path.splitext(file_name)[1] # 获取到文件的后缀
type_dict.setdefault(ext, 0) # 如果字典key不存在,则添加并设置为初始值
type_dict[ext] += 1
all_file_num += 1 # 计算总文件数量
return all_file_num
if __name__ == '__main__':
local_path = 'c:\\log' #文件夹的路径
type_dict = dict() # 定义一个保存文件类型及数量的空字典
all_file_num = 0 #计算本地总文件数
file_count = file_count(local_path, type_dict) # 运行函数,power by luotao
# 打印文件类型以及数量
for each_type in type_dict:
print(f"文件类型为【{each_type}】的数量有:{type_dict[each_type]} 个")
print(f"总文件数量为:{file_count}")
运行结果如下:
文件类型为【.log】的数量有:4 个
文件类型为【文件夹】的数量有:4 个
文件类型为【.txt】的数量有:13 个
文件类型为【.doc】的数量有:1 个
总文件数量为:18
进程已结束,退出代码为 0
如需转载请标明出处,luotao 20211109