Python Unzip File : Comment extraire un ou plusieurs fichiers
On septembre 24, 2021 by adminPython ZipFile est une classe de module zipfile pour lire et écrire des fichiers zip. ZIP est le format de fichier d’archive qui supporte la compression de données sans perte.
Par compression sans perte, on entend que l’algorithme de compression permet de reconstruire entièrement les données originales à partir des données compressées.
Un fichier ZIP est un fichier unique contenant un ou plusieurs fichiers compressés, offrant un moyen facile de réduire la taille de fichiers volumineux et de garder ensemble des fichiers connexes.
Python unzip file
Pour travailler sur des fichiers zip en utilisant Python, nous utiliserons un module python intégré appelé zipfile. Dans le module zipfile de Python, la classe ZipFile fournit une fonction membre pour extraire tout le contenu de l’archive ZIP.
Pour décompresser un fichier en Python, utilisez la méthode ZipFile.extractall(). La méthode extractall() prend un chemin, des membres, pwd comme argument, et extrait tout le contenu.
Syntaxe
ZipFile.extractall(path=None, members=None, pwd=None)
Elle accepte les paramètres suivants :
- chemin : emplacement où le fichier zip doit être extrait ; s’il n’est pas fourni, il extraira le contenu dans le répertoire courant.
- membres : liste des fichiers à extraire. Il extraira tous les fichiers du zip si cet argument n’est pas fourni.
- pwd : Si le fichier zip est crypté, alors passer le mot de passe dans cet argument par défaut est None.
Exemple de Python unzip
Disons que, dans mon répertoire de travail actuel, j’ai un fichier zip appelé Mail3.zip, et je veux le décompresser en utilisant ZipFile.extractall().
Voyez le code suivant.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObj: # Extract all the contents of zip file in current directory zipObj.extractall()
Sortie
python3 app.py
Il extraira les fichiers dans le même Répertoire que votre fichier app.py de programmation.
Il extraira tous les fichiers du zip au Répertoire courant. Si des fichiers avec le même nom sont déjà présents à l’emplacement d’extraction, il écrasera ces fichiers.
Nous avons utilisé l’instruction Python with pour ouvrir les fichiers. « Python with » garantit que les descripteurs de fichiers ouverts sont fermés automatiquement après que l’exécution du programme quitte le contexte de l’instruction with.
Extraire tous les fichiers d’un fichier zip vers un répertoire différent
Nous pouvons extraire tous les fichiers du fichier zip vers un répertoire différent, et pour cela, nous devons passer l’emplacement de destination comme argument dans extractall(). Le chemin peut être relatif ou absolu.
Voir le code suivant.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObj: # Extract all the contents of zip file in different directory zipObj.extractall('temp') print('File is unzipped in temp folder')
Ici, un objet ZipFile est fabriqué en appelant un constructeur ZipFile, qui accepte le nom du fichier zip et les paramètres de mode. Nous créons l’objet ZipFile en mode READ et le nommons zipObj.
Dans la sortie. Si le dossier temporaire n’est pas là, il créera ce dossier dans le répertoire courant et décompressera tout le contenu du fichier Mail3.zip.
Sortie
python3 app.pyFile is unzipped in temp folder
Extraire les fichiers d’un grand fichier zip en fonction de la condition
Disons que nous avons un énorme fichier zip, et que nous avons besoin de quelques fichiers parmi les milliers de fichiers de l’archive. Dézipper tous les fichiers d’un gros zip peut prendre des minutes. Mais si vous êtes intéressé par quelques-uns des fichiers archivés seulement, alors au lieu de décompresser le fichier entier, nous pouvons extraire le fichier unique aussi du fichier zip.
La classe ZipFile de Python fournit une fonction membre pour extraire un unique d’un fichier ZIP.
ZipFile.extract(member, path=None, pwd=None)
Voir le code suivant.
# app.pyfrom zipfile import ZipFilewith ZipFile('Mail3.zip', 'r') as zipObject: listOfFileNames = zipObject.namelist() for fileName in listOfFileNames: if fileName.endswith('.py'): # Extract a single file from zip zipObject.extract(fileName, 'temp_py') print('All the python files are extracted')
Si les noms de fichiers ont l’extension .py, alors il extraira à l’intérieur du dossier temp_py. Sinon, il n’extraira pas les fichiers.
Conclusion
Dézipper des fichiers en Python est très facile car Python fournit le module zipfile.
Le module zipfile a toutes les fonctions de dézipper des fichiers uniques ou multiples en fonction des conditions.
Enfin, le tutoriel Python Unzip : comment extraire des fichiers uniques ou multiples est terminé.
Voir aussi
Python zip()
Python zip liste de listes
Python zip dictionnaire
Dézipper des tuples Python
Python liste à dataframe
Python liste à dictionnaire
.
Laisser un commentaire