111 votes

Obtenir la liste des fichiers contenus dans un fichier zip

J'ai une archive zip : my_zip.zip. À l'intérieur se trouve un fichier txt, dont je ne connais pas le nom. J'ai regardé le module zipfile de Python ( http://docs.python.org/library/zipfile.html ), mais je n'ai pas pu comprendre comment faire ce que je veux.

Comment pourrais-je faire l'équivalent de 'double-cliquer' sur le fichier zip pour obtenir le fichier txt et ensuite utiliser ce fichier txt comme ceci :

>>> f = open('my_txt_file.txt','r')
>>> contents = f.read()

137voto

Ce dont vous avez besoin est ZipFile.namelist() qui vous donnera la liste de tous les contenus de l'archive, vous pouvez ensuite faire un zip.open('nom_fichier_découvert') pour obtenir le contenu de ce fichier.

76voto

user1797498 Points 49
import zipfile

# Manipulateur de fichiers zip  
zip = zipfile.ZipFile('filename.zip')

# Liste des fichiers disponibles dans le conteneur
print (zip.namelist())

# Extraire un fichier spécifique du conteneur zip
f = zip.open("file_inside_zip.txt")

# Enregistrer le fichier extrait 
content = f.read()
f = open('file_inside_zip.extracted.txt', 'wb')
f.write(content)
f.close()

25voto

GregS Points 16158
import zipfile

zip = zipfile.ZipFile('my_zip.zip')
f = zip.open('my_txt_file.txt')
contents = f.read()
f.close()

Vous pouvez consulter la documentation ici. En particulier, la méthode namelist() vous donnera les noms des membres du fichier zip.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X