0

我安装了 Python libarchive 0.4.3。我想获取存储在 7z 文件中的 7z 文件的 mtime。这与本地存储在磁盘上的文件的 mtime 不同。假设它是底层源 C tarball lzma1604.7z。

以下程序将列出所有文件及其 mtime。但是我看不到 7z 文件中给出的整个 7z“tarball”的时间。

from libarchive.public import memory_reader
with open('lzma1604.7z', 'rb') as f:
    buffer = f.read()

    with memory_reader(buffer) as archive:
        for entry in archive:
            print(entry.pathname, entry.mtime)

上面的程序打印:

('Asm/arm/7zCrcOpt.asm', datetime.datetime(2009, 10, 8, 5, 12))
('Asm/x86/7zAsm.asm', datetime.datetime(2012, 12, 30, 3, 41, 54))
...
('bin/7zSD.sfx', datetime.datetime(2016, 10, 4, 11, 12, 31))
('bin/lzma.exe', datetime.datetime(2016, 10, 4, 11, 12, 30))
('bin/x64/7zr.exe', datetime.datetime(2016, 10, 4, 10, 58, 29))

但是,如果我运行7z l lzma1604.7z最后给出的结果:

2016-10-04 10:12:31 ....A       113152               bin/7zSD.sfx
2016-10-04 10:12:30 ....A        97280               bin/lzma.exe
2016-10-04 09:58:29 ....A       742400               bin/x64/7zr.exe
------------------- ----- ------------ ------------  ------------------------
2016-10-04 10:27:55            4534441       960121  620 files

那么如何通过 libarchive 在 Python 中获取信息,特别是整个存档的 mtime?

4

0 回答 0