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.

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()
jihemD

python 2.5 / IDLE 1.2 sur PC WinXP