Bonsoir,
Voici quelques exemples d'utilisation du module "zipfile"
# -*- coding: ISO-8859-15 -*-
import zipfile
import os
def zip_file(ficzip, fichier):
f = zipfile.ZipFile(ficzip,'w',zipfile.ZIP_DEFLATED)
f.write(fichier)
f.close()
def zip_file_multi(ficzip, dossier, lst_files):
f = zipfile.ZipFile(ficzip,'w',zipfile.ZIP_DEFLATED)
for fic in lst_files:
#Est-ce un fichier?
if os.path.isfile(os.path.join(dossier, fic)):
f.write(fic)
f.close()
def unzip_file(ficzip):
zfile = zipfile.ZipFile(ficzip,'r')
for filename in zfile.namelist():
data = zfile.read(filename)
print "unzip",filename
f = open(filename, 'w+b')
f.write(data)
f.close()
def zip_list(ficzip):
zip = zipfile.ZipFile(ficzip)
zip.printdir()
#
#Main
#
#Nom du fichier cible
ficzip = os.path.join("C:\","test.zip")
#Nom du fichier source
fichier = os.path.join("C:\","TestZip.txt")
#Appel procédure de compression
zip_file(ficzip, fichier)
#Liste du fichier compressé
zip_list(ficzip)
print "================"
#Appel procédure de dé-compression (dans le dossier courant)
print "Dossier courant",os.getcwd()
unzip_file(ficzip)
#Appel procédure de compression de plusieurs fichiers (du dossier courant)
dossier = os.getcwd()
lst_files = []
#Nom du fichier cible
ficzip = os.path.join("C:\","test_multi.zip")
#liste des fichiers du dossier courant (fichiers source)
lst_files = os.listdir(dossier)
#appel procédure
zip_file_multi(ficzip, dossier, lst_files)
#Liste du fichier compressé
zip_list(ficzip)
Au lieu de if select_items_download is not None:
il est plus "pytonesque" d'ecrire if select_items_download:
ou if not select_items_download: