![](/img/trans.png)
[英]How to install a python package(PyXLL) correctly that is enclosed in a .zip file (that includes a bunch of different file formats)?
[英]Counting number of files with different formats in zip file using Python
我的目录中有很多压缩文件,我想获取每个zip文件的文件数量。 例如,对于zip文件“ nature.zip”,我想获得以下输出:
file_name file_format
nature jpg 2, png 1
到目前为止,我设法打印了内容,但不知道如何前进
from zipfile import ZipFile
import os
directory = r"C:\Users\Lenovo\data_2"
for folder, subfolders, files in os.walk(directory):
for file in files:
if file.endswith(".zip"):
# opening the zip file in READ mode
with ZipFile(directory+ '/'+ file, 'r') as zip:
# printing all the contents of the zip file
zip.printdir()
非常感谢你
这是一个例子。 这会按字典中的扩展名将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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.