merci Guigui pour le code exemple d'archivage d'une arborescence de fichier dans une archive : c'est tout à fait ce que je cherchais
malheureusement je n'arrive pas a gérer avec le module zipfile le noms de fichiers comportant des caractères accentués. J'ai tenté toutes sortes de conversion unicode/utf8/mbcs ... rien n'y fait. Un test inverse de création par WinXp d'un .zip contenant un fichier dont le nom comporte des accents, puis décompactage par python conduit à un nom de fichier incorrect!
je sais que ce n'est pas recommandé d'utiliser des accents dans les noms de fichiers, mais je ne suis malheureusement pas maître des noms dans les arborescences à archiver.
jihemD
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 import os import zipfile archive = zipfile.ZipFile("c:\\windows\\temp\\archive.zip", "w") rootdir = "L:\\20061208\\591112552" lenrootdir = len(rootdir) + 1 for files in os.walk(rootdir): for Eachfile in files[2]: # print os.path.join(files[0], Eachfile) archive.write(os.path.join(files[0], Eachfile), u.os.path.join(files[0], Eachfile)[lenrootdir:], zipfile.ZIP_DEFLATED) archive.close()
python 2.5 / IDLE 1.2 sur PC WinXP
Partager