J'ai lu les docs des modules zipfile, mais je ne pouvais pas comprendre comment décompresser un fichier, seulement comment compresser un fichier. Comment puis-je décompresser tout le contenu d'un fichier zip dans le même répertoire?Dézipper les fichiers en python
Répondre
import zipfile
zip_ref = zipfile.ZipFile(path_to_zip_file, 'r')
zip_ref.extractall(directory_to_extract_to)
zip_ref.close()
C'est à peu près tout!
Utilisez la méthode extractall
, si vous utilisez Python 2.6+
zip = ZipFile('file.zip')
zip.extractall()
N'avez-vous pas à spécifier une destination (zip.extractall (destination))? – asonnenschein
Pas si vous extrayez simplement dans le même répertoire que le fichier zip –
@DanGayle cela semble extraire le fichier zip dans le répertoire de travail actuel, PAS l'emplacement du fichier zip –
Si vous utilisez Python 3.2 ou version ultérieure:
import zipfile
with zipfile.ZipFile("file.zip","r") as zip_ref:
zip_ref.extractall("targetdir")
Vous ne devez utiliser la fermeture ou essayer/attraper avec cela car il utilise le context manager construction
ZipFile fonctionne également comme gestionnaire de contexte dans 2.7 ou plus tard: https://docs.python.org/2/library/zipfile.html#zipfile.ZipFile – blueCat
et si le contenu de l'archive .zip est le même, dans toutes les archives .zip? comment renommer le contenu avant d'extraire? exemple: 1.zip 2.zip .. tous contiennent content.txt: tout extraire comme 1content.txt 2content.txt? – iratzhash
@Rahul - et quelle bibliothèque puis-je 'importer' – 3kstc
@ 3kstc' import zipfile' –