← retour aux snippets

gzip: compresser et lire des fichiers .gz en flux

Ouvrir en gzip pour écrire/lire en binaire ou texte.

python compression #gzip#compression#stream

objectif

Ouvrir en gzip pour écrire/lire en binaire ou texte.

code minimal

import gzip, io
buf = io.BytesIO()
with gzip.GzipFile(fileobj=buf, mode="wb") as f:
    f.write(b"hello")
data = gzip.decompress(buf.getvalue())
print(data == b"hello")  # attendu: True

utilisation

import gzip, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
    p = pathlib.Path(tmp)/"d.txt.gz"
    with gzip.open(p, "wt", encoding="utf-8") as f:
        f.write("ok")
    with gzip.open(p, "rt", encoding="utf-8") as f:
        print(f.read() == "ok")

variante(s) utile(s)

import gzip
print(hasattr(gzip, "open"))

notes

  • Utilisez “wt”/“rt” pour texte, “wb”/“rb” pour binaire.
  • GzipFile accepte fileobj= pour travailler en mémoire.