[Python] zipper plusieurs fichiers
Résolu
tata-titi
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
Je souhaiterais zipper tous les fichiers "*-20070202.log"
d'une certaine racine dans un fichier "20070202.zip" a ce meme endroit
1 - j'ai essaye :
import zipfile
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
f.write('aaaaaaaa-20070202.log')
f.close()
=> ca a marche (zip cree et fichier vise ajoute)
2 - mais pour :
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write('b-20070202.log')
f.close()
=> 2eme fichier pas ajoute au zip deja existant ...
3 - je souhaiterais generaliser ca a toute une plage de fichiers ...
MERCI d'avance !
d'une certaine racine dans un fichier "20070202.zip" a ce meme endroit
1 - j'ai essaye :
import zipfile
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
f.write('aaaaaaaa-20070202.log')
f.close()
=> ca a marche (zip cree et fichier vise ajoute)
2 - mais pour :
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write('b-20070202.log')
f.close()
=> 2eme fichier pas ajoute au zip deja existant ...
3 - je souhaiterais generaliser ca a toute une plage de fichiers ...
MERCI d'avance !
3 réponses
----- reponse partielle -----
import zipfile
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\aaaaaaaa-20070202.log")
f.close()
f=zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\b-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\c-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\d-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\fffffffffff-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\trztretretre-20070202.log")
f.close()
===> mes 6 fichiers ont bien dedans
mais comment faire si l'on veut eviter de "lister" tous les ajouts ... ?
import zipfile
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\aaaaaaaa-20070202.log")
f.close()
f=zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\b-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\c-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\d-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\fffffffffff-20070202.log")
f.close()
f = zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\trztretretre-20070202.log")
f.close()
===> mes 6 fichiers ont bien dedans
mais comment faire si l'on veut eviter de "lister" tous les ajouts ... ?
----- pas encore ca ... -----
import zipfile
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\aaaaaaaa-20070202.log")
f.close()
f=zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\b-20070202.log")
f.write("C:\\bidon\\c-20070202.log")
f.write("C:\\bidon\\d-20070202.log")
f.write("C:\\bidon\\fffffffffff-20070202.log")
f.write("C:\\bidon\\trztretretre-20070202.log")
f.close()
===> j'ai reussit a reduire le nombre de lignes de mon code
mais pas encore a filtrer selon nom comme "*-20070202.log"
as-tu la reponse ??? (j'ai pas trouve sur ton site)
Merci
import zipfile
chemin = "C:\\bidon\\20070202.zip"
import zipfile
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\aaaaaaaa-20070202.log")
f.close()
f=zipfile.ZipFile(chemin,'a',zipfile.ZIP_DEFLATED)
f.write("C:\\bidon\\b-20070202.log")
f.write("C:\\bidon\\c-20070202.log")
f.write("C:\\bidon\\d-20070202.log")
f.write("C:\\bidon\\fffffffffff-20070202.log")
f.write("C:\\bidon\\trztretretre-20070202.log")
f.close()
===> j'ai reussit a reduire le nombre de lignes de mon code
mais pas encore a filtrer selon nom comme "*-20070202.log"
as-tu la reponse ??? (j'ai pas trouve sur ton site)
Merci
----------------------- EUREKA !!! ---------------------------
import zipfile
chemin = "C:\\bidon\\20070202.zip"
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
import glob
for filename in glob.glob(r"C:\\bidon\\*-20070202.log"):
f.write(filename)
f.close()
===> a force de perseverer ... on trouve la solution !
import zipfile
chemin = "C:\\bidon\\20070202.zip"
f=zipfile.ZipFile(chemin,'w',zipfile.ZIP_DEFLATED)
import glob
for filename in glob.glob(r"C:\\bidon\\*-20070202.log"):
f.write(filename)
f.close()
===> a force de perseverer ... on trouve la solution !