这里有一个例子。这将根据字典中的扩展名对ZIP中的文件进行分组,并打印输出。根据您的情况需要进行调整。
#Filegroup.py
from zipfile import ZipFile
from glob import glob
print "file_name","\t","file_format"
for zips in glob('*.zip'):
with ZipFile(zips) as zip:
files = zip.namelist()
filecounts = {}
for file in files:
ext = file.split('.')[-1]
if ext in filecounts:
filecounts[ext] += 1
else:
filecounts[ext] = 1
print zip.filename,'\t\t',', '.join([' '.join(map(str,elem)) for elem in filecounts.items()])
测试:
$ zipinfo -1 A.zip
a.txt
b.txt
c.jpg
k.png
$ zipinfo -1 B.zip
g.md
h.txt
e.png
f.png
d.jpg
$ python Filegroup.py
file_name file_format
A.zip txt 2, png 1, jpg 1
B.zip md 1, txt 1, jpg 1, png 2