Je dois décompresser une archive .zip. Je sais déjà comment le décompresser, mais c'est un fichier énorme et prend du temps pour extraire. Comment imprimeriez-vous le pourcentage complet pour l'extraction? Je voudrais quelque chose comme ceci:
5 Réponses :
Je ne crois pas que vous puissiez suivre les progrès de l'extraction d'un seul fichier. Le n'a aucun rappel pour la progression. P>
Voici un exemple que vous pouvez commencer avec, il n'est pas optimisé:
print "%s %%\r" % (extracted_size * 100/uncompress_size),
Parfait! C'est exactement ce que je voulais !! Merci!
in python 2.6 zipfile objet a un Ouvrir la méthode Peut ouvrir un fichier nommé dans Zip en tant qu'objet de fichier, vous pouvez poursuivre pour lire des données dans des chunks éditer: pour obtenir la taille totale que vous pouvez faire quelque chose comme ça p> < Pré> xxx pré> Alors maintenant, vous pouvez imprimer le total de progrès et de progression par fichier, par exemple Supposons que vous ayez seulement 1 gros fichier dans zip, d'autres méthodes (par exemple, compter uniquement les tailles de fichiers et l'extraction) ne donnera aucune progression du tout. p> p>
Ce code fonctionne bien! Merci. Savez-vous comment j'aurais la taille totale de la fermeture à glissière non comprimée? De cette façon, je peux imprimer lire xxxx de xxxxx i>
Vous pouvez simplement surveiller la progression de chaque fichier étant extraite avec TQDM () CODE> A >:
from zipfile import ZipFile
from tqdm import tqdm
# Open your .zip file
with ZipFile(file=path) as zip_file:
# Loop over each file
for file in tqdm(iterable=zip_file.namelist(), total=len(zip_file.namelist())):
# Extract each file to another directory
# If you want to extract to current working directory, don't specify path
zip_file.extract(member=file, path=directory)