Maison >développement back-end >Tutoriel Python >Comment puis-je créer une archive ZIP d'un répertoire en Python ?

Comment puis-je créer une archive ZIP d'un répertoire en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 01:45:02890parcourir

How Can I Create a ZIP Archive of a Directory in Python?

Création d'une archive ZIP d'un répertoire en Python

La création d'une archive ZIP compressée d'une structure de répertoires est une tâche courante dans le développement de logiciels et de données gestion. Python fournit plusieurs options pour y parvenir, y compris le module Shutil.

Utiliser Shutil.make_archive

Le moyen le plus simple de créer une archive ZIP d'un répertoire est d'utiliser le Fonction shutdown.make_archive. Cette fonction prend en charge les formats ZIP et TAR, ce qui la rend polyvalente pour divers besoins d'archivage.

Pour utiliser shutdown.make_archive, spécifiez les paramètres suivants :

  • Nom du fichier de sortie : le nom souhaité et emplacement de l'archive ZIP.
  • Format : Spécifiez "zip" pour une archive ZIP.
  • Nom du répertoire : Le chemin d'accès au répertoire que vous souhaitez archiver.

Voici un exemple :

import shutil
shutil.make_archive("my_archive", "zip", "/path/to/my_directory")

Cette commande créera une archive ZIP nommée "my_archive.zip" dans le répertoire courant, contenant le contenu du répertoire spécifié.

Exploration le module zipfile

Si vous avez besoin de plus de contrôle sur le processus d'archivage, envisagez d'explorer le module zipfile. Il fournit un accès de niveau inférieur pour créer et manipuler des archives ZIP, vous permettant de personnaliser les options, d'ignorer certains fichiers et même d'ajouter des métadonnées.

Par exemple, pour créer une archive ZIP tout en excluant certains modèles de fichiers :

import zipfile
with zipfile.ZipFile("my_archive.zip", "w") as zip:
    for root, dirs, files in os.walk("/path/to/my_directory"):
        for filename in files:
            if not filename.endswith(".txt"):
                zip.write(os.path.join(root, filename), filename)

Ce code parcourt les fichiers, en ignorant ceux portant une extension ".txt".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn