[Python] zipper plusieurs fichiers

Résolu
tata-titi Messages postés 43 Statut Membre -  
sebsauvage Messages postés 33284 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 !
Configuration: Windows XP
Firefox 1.5.0.9

3 réponses

  1. tata-titi Messages postés 43 Statut Membre 11
     
    ----- 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
  2. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    1
    1. tata-titi Messages postés 43 Statut Membre 11
       
      ----- 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
    2. tata-titi Messages postés 43 Statut Membre 11
       
      ----------------------- 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
  3. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Voilà, c'est ça ! :-)

    1