Créer une archive zip d'un répertoire à l'aide de Python

Vaibhav Vaibhav 23 janvier 2022
Créer une archive zip d'un répertoire à l'aide de Python

Le fichier zip est un format de fichier d’archive contenant un ou plusieurs fichiers compressés. Il prend en charge la compression de données sans perte et est le format d’archive le plus couramment utilisé dans le monde. Cet article nous aidera à apprendre comment convertir un répertoire en fichier zip à l’aide du langage de programmation Python.

Utilisation de la bibliothèque shutil pour créer une archive zip d’un répertoire

La bibliothèque shutil fait partie du Python standard. Il offre plusieurs fonctions de haut niveau à exécuter sur des fichiers ou des groupes de fichiers, telles que la copie, la compression, la décompression et la suppression. Il a une fonction ou une méthode du nom de make_archive() qui peut convertir n’importe quel répertoire ou dossier en un fichier d’archive zip. Voici les arguments les plus utilisés de cette fonction.

  • base_name : Nom du fichier à créer avec le chemin et sans extension de format.
  • format : C’est le nom du format de l’archive. Les options disponibles sont zip (nécessite le module zlib), tar, gztar (nécessite le module zlib), bztar (nécessite le module bz2) et xztar (nécessite lzma module).
  • root_dir : C’est le répertoire qui sera le répertoire racine de l’archive, ce qui signifie que tous les chemins dans l’archive lui seront relatifs. La valeur par défaut est le répertoire courant.
  • base_dir : C’est le répertoire d’où démarre l’archivage. Sa valeur doit être relative au root_dir. La valeur par défaut est le répertoire courant.

Maintenant que nous avons terminé avec une brève théorie sur le package et la fonction requise, apprenons comment nous pouvons utiliser cette fonction pour créer une archive zip à partir d’un répertoire.

import os
import shutil

filename = "compressed"
format = "zip"
directory = os.getcwd()
shutil.make_archive(filename, format, directory)

Le code ci-dessus compressera le répertoire de travail actuel dans un fichier zip et nommera le fichier compressed.zip. Notez que nous n’avons pas mentionné l’extension (.zip) dans le base_name.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python Dictionary