检查 Zipfile 内容

有几种方法可以检查 zipfile 的内容。你可以使用 printdir 获取发送到 stdout 的各种信息

with zipfile.ZipFile(filename) as zip:
    zip.printdir()

    # Out:
    # File Name                                             Modified             Size
    # pyexpat.pyd                                    2016-06-25 22:13:34       157336
    # python.exe                                     2016-06-25 22:13:34        39576
    # python3.dll                                    2016-06-25 22:13:34        51864
    # python35.dll                                   2016-06-25 22:13:34      3127960
    # etc.

我们还可以使用 namelist 方法获取文件名列表。在这里,我们只需打印列表:

with zipfile.ZipFile(filename) as zip:
    print(zip.namelist())

# Out: ['pyexpat.pyd', 'python.exe', 'python3.dll', 'python35.dll', ... etc. ...]

我们可以调用 infolist 方法来代替 namelist,该方法返回 ZipInfo 对象列表,其中包含有关每个文件的附加信息,例如时间戳和文件大小:

with zipfile.ZipFile(filename) as zip:
    info = zip.infolist()
    print(zip[0].filename)
    print(zip[0].date_time)
    print(info[0].file_size)

# Out: pyexpat.pyd
# Out: (2016, 6, 25, 22, 13, 34)
# Out: 157336