zipfile nom de fichier accentués
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:
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
ZipFile nom de fichier accentué
merci oiffriq, j'ai essayé beaucoup d'encodage mais ça ne marche pas, même sous Linux (KLA et Mandriva One) pire avec un zip créé avec WinXP contenant un fichier avec un nom avec des accents, donnera un nom de fichier eroné une fois dézippé avec Python 2.5 !!!
va falloir attendre Python 3000 en unicode !! :piou: