Python 3.14

Compresser des fichiers en Python avec zstd : le guide débutant

Python 3.14 ajoute compression.zstd : apprenez à compresser et décompresser des fichiers sans installer de bibliothèque, avec des exemples simples.

Par Julien Mercier 7 min de lecture
Compresser des fichiers en Python avec zstd : le guide débutant

Compresser un fichier avec zstd

Avec Python 3.14, le module standard compression.zstd permet de créer et de lire des fichiers Zstandard (.zst) sans installer le paquet externe zstandard. Vérifiez d’abord que l’import suivant fonctionne ; l’API est décrite dans la documentation de compression.zstd.

from compression import zstd

zstd compresse des octets, non des chaînes Python. Pour du texte, utilisez encode("utf-8") avant la compression et decode("utf-8") après la décompression.

from pathlib import Path
from compression import zstd
source = Path("journal.txt")
destination = Path("journal.txt.zst")
destination.write_bytes(zstd.compress(source.read_bytes()))
print(f"Fichier créé : {destination}")

Ce script lit journal.txt sous forme d’octets et écrit sa version compressée dans journal.txt.zst. La compression réduit souvent la taille du texte, des journaux, des CSV ou du JSON, mais les fichiers déjà compressés peuvent peu diminuer, voire grossir légèrement.

Restaurer un fichier .zst

Un fichier .zst contient un flux compressé, pas une archive qui conserve automatiquement le nom ou l’arborescence des fichiers. Choisissez donc explicitement un nom de sortie et évitez d’écraser le fichier source pendant vos essais.

from pathlib import Path
from compression import zstd
archive = Path("journal.txt.zst")
fichier_restaure = Path("journal_restaure.txt")
fichier_restaure.write_bytes(zstd.decompress(archive.read_bytes()))
print(f"Fichier restauré : {fichier_restaure}")

Comparez ensuite le fichier restauré au fichier d’origine pour vérifier que son contenu est identique. Cette méthode s’applique aussi aux exports CSV et aux fichiers de sauvegarde.

Choisir le bon format

  • zstd (.zst) convient à un fichier unique ou à des données produites et relues par votre programme.
  • ZIP (.zip) sert à réunir plusieurs fichiers et dossiers avec leurs noms et leur structure ; Python fournit le module zipfile.
  • gzip (.gz) est utile si un outil ou un serveur attend ce format ; Python fournit le module gzip.

Le module a été ajouté à la bibliothèque standard par la PEP 784. Sur une version antérieure à Python 3.14, l’import ne fonctionnera pas.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire