Skip to content

gzip

The gzip module provides gzip compression and decompression for files, text, and raw bytes.

Factories

Factory Returns Description
gzip.file(path) gzip.file Create a gzip file handle for compress/decompress operations
gzip.text(s) gzip.source Create a gzip source from a string
gzip.bytes(data) gzip.source Create a gzip source from raw bytes

gzip.source

A source wraps in-memory data (text or bytes) for compression and decompression.

Method Returns Description
compress(dest="", level=-1) bytes Compress the data; optionally write to dest file. level sets compression level (-1 = default)
decompress(dest="") bytes Decompress the data; optionally write to dest file
data property The underlying data

try_ variants

Method Returns Description
try_compress(dest="", level=-1) Result Like compress, returns Result instead of raising
try_decompress(dest="") Result Like decompress, returns Result instead of raising

gzip.file

A file handle for compressing or decompressing gzip files on disk.

Method Returns Description
compress(source, level=-1) None Compress source file into this gzip file
decompress(dest="") None Decompress this gzip file; optionally specify output dest

try_ variants

Method Returns Description
try_compress(source, level=-1) Result Like compress, returns Result instead of raising
try_decompress(dest="") Result Like decompress, returns Result instead of raising

Examples

Compress text to bytes

src = gzip.text("Hello, world!")
compressed = src.compress()
print(len(compressed))  # compressed byte count

Compress and write to file

src = gzip.text("large content here")
src.compress(dest="/tmp/output.gz")

Decompress a gzip file

gz = gzip.file("/tmp/output.gz")
gz.decompress(dest="/tmp/output.txt")

Round-trip with bytes

original = b"binary data payload"
src = gzip.bytes(original)
compressed = src.compress(level=9)

restored = gzip.bytes(compressed).decompress()
assert_equal(original, restored)

Using try_ for safe decompression

result = gzip.file("/tmp/maybe.gz").try_decompress()
if result.ok:
    print("Decompressed successfully")
else:
    print("Error:", result.error)

Note: All gzip methods that can fail support try_ variants that return a Result instead of raising an error.