python zipfile module ne semble pas être compresser mes fichiers
J'ai fait une petite fonction d'assistance:
import zipfile
def main(archive_list=[],zfilename='default.zip'):
print zfilename
zout = zipfile.ZipFile(zfilename, "w")
for fname in archive_list:
print "writing: ", fname
zout.write(fname)
zout.close()
if __name__ == '__main__':
main()
Le problème est que tous mes fichiers ne sont PAS COMPRESSÉS! Les fichiers sont de la même taille et, en fait, juste l'extension est en cours de modification ".zip" (à partir de ".xls" dans ce cas).
Je suis sous python 2.5 sur winXP sp2.
Vous devez vous connecter pour publier un commentaire.
C'est parce que
ZipFile
oblige à préciser la méthode de compression. Si vous ne spécifiez pas, il assume la méthode de compression àzipfile.ZIP_STORED
, qui stocke uniquement les fichiers sans les compresser. Vous devez spécifier la méthode àzipfile.ZIP_DEFLATED
. Vous aurez besoin d'avoir lazlib
module est installé pour ce (il est généralement installé par défaut).zlib
module n'est pas toujours disponible, en particulier dans le bac à sable des installations.Il est vraiment un moyen facile de compresser
zip
format,Utiliser dans
shutil.make_archive
bibliothèque.Par exemple:
Pouvez voir une documentation plus détaillée sur: Ici