有时只是想先看看 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())
这个场景比先解压再扫目录轻一点,临时看包内容挺省事。