objectif
Créer une archive zip/tar d’un dossier sans dépendances externes.
code minimal
import shutil, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
root = pathlib.Path(tmp) / "data"
(root / "sub").mkdir(parents=True)
(root / "sub" / "f.txt").write_text("x", encoding="utf-8")
out = shutil.make_archive(str(root), "zip", root_dir=str(root))
print(out.endswith(".zip")) # attendu: True
utilisation
import shutil
print(callable(shutil.make_archive))
variante(s) utile(s)
import shutil, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
p = pathlib.Path(tmp) / "d"
p.mkdir()
shutil.make_archive(str(p), "gztar", root_dir=str(p))
print(True)
notes
- Formats supportés: zip, tar, gztar, bztar, xztar.
- root_dir et base_dir contrôlent le contenu de l’archive.