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

python:如何获取压缩文件夹中文件的元数据,python,zip,zipfile,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


我正在尝试构建一个用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中提取所有元数据,而无需解压缩文件内容

提供了一个元数据列表,允许您访问该元数据

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)
您可以使用方法
infolist()

要仅处理文件,请在elem.filename.endswith('/')中使用check


为了获得文件创建/修改的年份和月份,您可以使用
elem.date\u time[0]
elem.date\u time[1]

我怀疑这是否有帮助,甚至是否有效。为了让我相信StackOverflow是一个免费的代码编写服务,同时也为了帮助消除这种误解,请添加一个解释,说明它是如何工作的以及为什么会有帮助。请在回答中加上解释,把它删掉。你解释得越多,你的答案就越有说服力和帮助。请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带解释的答案通常更有帮助,质量也更好,而且更有可能吸引上流社会的人来写这篇文章!我是新来的。我补充说。
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])