Python 3.8+zipfileпонятие
zipfile.Path
архивы ZIP
Объект в стиле pathlib для навигации по ZIP-архиву: оператор /, iterdir(), read_text(), exists().
Синтаксис
zipfile.Path(root, at='')
Удобен, когда код уже написан под pathlib: те же / и read_text() работают внутри архива без распаковки. Но это не pathlib.Path: путь вне архива не существует, а создание объекта ничего не проверяет — отсутствующее имя вылезет только при чтении, поэтому сначала exists(). read_text() без encoding берёт кодировку по умолчанию, как open() (до 3.15 — кодировку локали); каталоги в ZIP часто неявные, и Path видит их по префиксам имён.
Примеры
import io, zipfile
buf = io.BytesIO()
with zipfile.ZipFile(buf, 'w') as z:
z.writestr('data/config.txt', 'debug=1')
root = zipfile.Path(buf)
print([p.name for p in root.iterdir()]) # → ['data']
cfg = root / 'data' / 'config.txt'
print(cfg.read_text(encoding='utf-8')) # → debug=1
print((root / 'data' / 'nope.txt').exists()) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности