← retour aux snippets

bz2: compresser en .bz2 avec bz2.open

Écrire et lire des flux .bz2 avec une bonne compression.

python compression #bz2#compression#stream

objectif

Écrire et lire des flux .bz2 avec une bonne compression.

code minimal

import bz2
data = bz2.compress(b"abc")
print(bz2.decompress(data) == b"abc")  # attendu: True

utilisation

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

variante(s) utile(s)

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

notes

  • bz2 offre un compromis entre gzip (rapide) et lzma (compact).
  • Accepte mode texte ou binaire comme gzip/lzma.