檢查 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