繁体   English   中英

zipfile - python:如何获取压缩文件夹中文件的元数据

[英]zipfile - python: how to get meta-data of files inside compressed folder


我正在尝试构建一个用 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)

我可以使用“数据”来获取我需要的信息吗? 还是应该使用另一种方法?

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

ZipFile.infolist()方法为您提供一个ZipInfo实例列表,让您可以访问该元数据。

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]

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM