Python:先用 zipfile.Path 看压缩包里有什么

28 次浏览1 条回复

有时只是想先看看 zip 里目录长什么样,没必要先解压一地。zipfile.Path 直接当路径看挺顺手,读小文件也方便。

环境:Python 3.8+,只用标准库。保存为 zipfile-path-demo.py:

from zipfile import ZipFile, Path
from pathlib import Path as FSPath

archive = FSPath('demo.zip')

with ZipFile(archive, 'w') as zf:
    zf.writestr('data/a.txt', 'hello')
    zf.writestr('data/b.txt', 'world')

with ZipFile(archive) as zf:
    root = Path(zf)
    data_dir = root / 'data'

    print([p.name for p in data_dir.iterdir()])
    print((data_dir / 'a.txt').read_text())

这个场景比先解压再扫目录轻一点,临时看包内容挺省事。

这个挺顺手的,尤其是临时只想扫一眼包结构的时候。

我一般还会顺手记一下,zipfile.Path 读出来的还是路径感很强,配 iterdir() 看层级很直观。要是压缩包里文件不多,直接这样看比先解压省事不少。