使用Python计算zip文件中具有不同格式的文件数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Python计算zip文件中具有不同格式的文件数相关的知识,希望对你有一定的参考价值。

我的目录中有很多压缩文件,我想获得每个zip文件的文件数量。例如,让我们说zip文件“nature.zip”,我想得到以下输出:

file_name   file_format
nature      jpg 2, png 1 

到目前为止,我设法打印内容,但不知道我怎么能继续前进

    from zipfile import ZipFile
    import os
    directory = r"C:UsersLenovodata_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()

非常感谢你

答案

这是一个例子。这将拉链内的文件按字典中的扩展名分组并打印输出。根据您的情况需要进行调整。

#Filegroup.py
from zipfile import ZipFile
from glob import glob

print "file_name","	","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,'		',', '.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

以上是关于使用Python计算zip文件中具有不同格式的文件数的主要内容,如果未能解决你的问题,请参考以下文章

使用 python ftplib 下载二进制格式的 zip 文件

Android 逆向APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )

如何将具有依赖项的 python 脚本打包到 zip/tar 中?

zip.dl是啥格式

一次下载多个 zip 格式的文件

python—txt文件转py文件再转ZIP格式