← retour aux snippets

lzma: compresser en .xz avec lzma.open

Écrire et lire des flux compressés .xz (fort taux de compression).

python compression #lzma#xz#compression

objectif

Écrire et lire des flux compressés .xz (fort taux de compression).

code minimal

import lzma, io
buf = io.BytesIO()
with lzma.open(buf, "wb") as f:
    f.write(b"xz")
buf.seek(0)
with lzma.open(buf, "rb") as f:
    print(f.read() == b"xz")  # attendu: True

utilisation

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

variante(s) utile(s)

import lzma
print(lzma.FORMAT_XZ == 1 or lzma.FORMAT_XZ >= 0)

notes

  • lzma offre une forte compression, plus lente que gzip.
  • Choisissez le format XZ (par défaut) pour les fichiers .xz.