使用python语言统计磁盘上不同文件类型的数量,并使用matplotlib的条形图显示,代码如下:
#根据扩展名统计磁盘上文件的数量
import matplotlib.pyplot as plt
import matplotlib
import os
# 设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
#遍历字母A到Z,忽略光驱的盘符
roots=[]
for i in range(65,91):
vol = chr(i) + ':'
if os.path.isdir(vol):
roots.append(vol)
print(vol)
ext2countMap={} #存放扩展名->数量 的字典
count=0;
for root, dirs, files in os.walk("c:\\", topdown=False):
for name in files:
extName=os.path.splitext(name)[1] #获取扩展名
#print(extName)
if extName in ext2countMap:
ext2countMap[extName]=ext2countMap[extName]+1
else:
ext2countMap[extName]=1
count=count+1
print(count)
ext2countList = sorted(ext2countMap.items(),key=lambda x:x[1],reverse=True) # 按字典集合中,对数量进行排序
print(ext2countList)
extNames=[] #存放扩展名
counts=[] #存放扩展名对应的文件数量
for item in ext2countList:
extNames.append(item[0])
counts.append(item[1])
plt.bar(extNames[0:15],counts[0:15]) #截取数量最多的15个
# 显示横轴标签
plt.xlabel("扩展名")
# 显示纵轴标签
plt.ylabel("数量")
# 显示图标题
plt.title("文件类型TOP15(共计"+str(count)+")个文件")
plt.show()
运行结果如下: