SplitTypes=[]
for file in os.listdir(os.curdir):
SplitTypes.append(file.split('.')[-1])
collections.Counter(SplitTypes)
这给了我
Counter({'txt': 2,
'ipynb': 38,
'Practical_Statistics': 1,
'DS_Store': 1,
'xlsx': 10,
'xls': 2,
'json': 9,
'csv': 3,
'workspace 2': 1,
'py': 2,
'templates': 1,
'ipynb_checkpoints': 1,
'log': 1,
'exec -l ': 1})
但是我想为每种扩展名添加,最小,平均和最大文件大小,因为列表或字典无关紧要。我知道如何使用以下方法获取目录中每个文件的大小:
for file in os.listdir(os.curdir):
print(file, os.path.getsize(file))
但不确定如何根据扩展名类型进行汇总
答案 0 :(得分:0)
由于collections.Counter()
仅会给您带来计数,因此文件分组方法可能会更简单。
您可以做什么:
1。。按扩展名对文件大小进行分组,也许使用collections.defaultdict()
。
2。。对每组文件大小进行统计。
演示:
from os import curdir
from os import listdir
from os.path import getsize
from os.path import splitext
from collections import defaultdict
# 1
d = defaultdict(list)
for file in listdir(curdir):
_, extension = splitext(file)
d[extension].append(getsize(file))
# 2
for extension, file_sizes in d.items():
print('extension:', extension)
print('count:', len(file_sizes))
print('min file size:', min(file_sizes))
print('max file size:', max(file_sizes))
print('average file size:', sum(file_sizes) / len(file_sizes))