все Python 3gzipпонятие
gzip.GzipFile
файлы gzip
Класс-обёртка над двоичным файловым объектом, сжимающая или распаковывающая gzip на лету.
Синтаксис
gzip.GzipFile(filename=None, mode=None, compresslevel=6, fileobj=None, mtime=None)
Нужен, когда сжатый поток живёт не в файле на диске, а в BytesIO, сокете или чужом открытом файле; для обычных файлов проще gzip.open(). Хвост gzip (CRC и размер) пишется только при close(): getvalue() у BytesIO до закрытия GzipFile даёт обрезанные данные. Закрытие GzipFile не закрывает переданный fileobj. Режим лучше передавать явно: запись без mode устарела с 3.9. С 3.15 уровень сжатия по умолчанию — 6, а не 9: сжатие быстрее, архив чуть больше; нужен прежний размер — передайте compresslevel=9 явно.
Примеры
import gzip, io
buf = io.BytesIO()
g = gzip.GzipFile(fileobj=buf, mode='wb')
g.write(b'x' * 100)
try:
gzip.decompress(buf.getvalue())
except EOFError:
print('хвост ещё не записан') # → хвост ещё не записан
g.close()
print(gzip.decompress(buf.getvalue())[:3], buf.closed) # → b'xxx' False
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности