zipfile - python:如何获取压缩文件夹

时间:2016-05-01 14:06:14

标签: python zip zipfile


我正在尝试构建一个用Python编写的脚本来探索存档(在本例中为zip),并递归获取文件的所有元数据。
我通常使用以下命令来获取元数据:

(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(fname)

问题是我不想从zip中提取文件,所以我没有提供给os.stat()的路径。我唯一能做的就是:

z=zipfile.ZipFile(zfilename,'r')
    for info in z.infolist():
        fname = info.filename
        data = z.read(fname)

我可以使用'数据'来获取我需要的信息吗?或者我应该使用其他方法?

3 个答案:

答案 0 :(得分:2)

with zipfile.ZipFile(path_zip_file, 'r') as zip_file:
    for elem in zip_file.infolist():
        if elem.filename.endswith('/'):
            continue
        print('year_last_modified', elem.date_time[0])
        print('month_last_modified', elem.date_time[1])

您可以使用方法infolist()

获取文件列表* .zip文件。

要仅使用文件,请使用if elem.filename.endswith('/')

要获取文件创建/修改的年份和月份,可以使用elem.date_time[0]elem.date_time[1]

答案 1 :(得分:1)

ZIP格式不包含与文件系统上的文件一样多的元数据(也不需要)。您可以从zipfile中提取所有元数据,而无需解压缩文件内容。

ZipFile.infolist() method为您提供了ZipInfo instances的列表,让您可以访问该元数据。

答案 2 :(得分:1)

import os
import zipfile

z=zipfile.ZipFile(zfilename,'r')

for info in z.infolist():
    fname = info.filename
    data = z.read(fname)
    print(fname)
    print(data)