all Python 3zipfileterm
zipfile.ZipFile
ZIP archives
A class for reading, creating and appending to ZIP archives; it accepts a path or a file object.
Syntax
zipfile.ZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True, compresslevel=None)
The default is compression=ZIP_STORED: files go in with no compression at all, so the 'archive' is as big as the sources — use ZIP_DEFLATED to compress. Mode 'w' silently overwrites an existing archive, 'a' appends, and writing a name that already exists adds a second entry (with a UserWarning) instead of replacing it. read() returns bytes; decoding text is up to you.
Examples
import os, zipfile
with open('a.txt', 'w', encoding='utf-8') as f:
f.write('hello ' * 100)
with zipfile.ZipFile('stored.zip', 'w') as z:
z.write('a.txt')
with zipfile.ZipFile('packed.zip', 'w', compression=zipfile.ZIP_DEFLATED) as z:
z.write('a.txt')
print(os.path.getsize('stored.zip') > os.path.getsize('packed.zip')) # → True — по умолчанию сжатия нет
import zipfile
with zipfile.ZipFile('notes.zip', 'w', compression=zipfile.ZIP_DEFLATED) as z:
z.writestr('docs/readme.txt', 'привет')
with zipfile.ZipFile('notes.zip') as z:
print(z.namelist()) # → ['docs/readme.txt']
data = z.read('docs/readme.txt')
print(type(data).__name__) # → bytes
print(data.decode('utf-8')) # → привет
See also
Common errors
Open in the full glossarydocs.python.orgReport an inaccuracy