[Python] zipper plusieurs fichiers

Résolu/Fermé
tata-titi Messages postés 42 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 14 décembre 2009 - 2 févr. 2007 à 09:55
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 2 févr. 2007 à 11:04
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 !

3 réponses

tata-titi Messages postés 42 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 14 décembre 2009 11
2 févr. 2007 à 10:09
----- 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 ... ?
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
2 févr. 2007 à 10:15
1
tata-titi Messages postés 42 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 14 décembre 2009 11
2 févr. 2007 à 10:19
----- 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
0
tata-titi Messages postés 42 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 14 décembre 2009 11
2 févr. 2007 à 10:37
----------------------- 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 !
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
2 févr. 2007 à 11:04
Voilà, c'est ça ! :-)

1