zipfile est-il compatible, avec des fichiers dont le nom est en Unicode ?
Cela fait 1 heure que je tente de créer un fichier compressé, à partir d'un
fichier dont le nom est en cyrillique. Et, au mieux, j'ai la TB suivant :
Traceback (most recent call last):
File "D:\dev\Python\zipuni.py", line 7, in ?
z.write(f)
File "C:\Python24\lib\zipfile.py", line 412, in write
self.fp.write(zinfo.FileHeader())
File "C:\Python24\lib\zipfile.py", line 166, in FileHeader
return header + self.filename + self.extra
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 10:
ordinal not in range(128)
Ce n'est pas vraiment une solution, mais il est peut-etre possible de creer l'archive dans un fichier temporaire puis de le renommer/deplacer avec son nom en cyrillique.
Essaie d'utiliser la version à deux arguments: z.write( filename, arcname ) Le premier est le nom du fichier sur le disque, le second est le nom dans le zip. ça permet de couper le problème en 2...
Ce n'est pas vraiment une solution, mais il est peut-etre possible de
creer l'archive dans un fichier temporaire puis de le renommer/deplacer
avec son nom en cyrillique.
Essaie d'utiliser la version à deux arguments:
z.write( filename, arcname )
Le premier est le nom du fichier sur le disque, le second est le nom
dans le zip.
ça permet de couper le problème en 2...
Ce n'est pas vraiment une solution, mais il est peut-etre possible de creer l'archive dans un fichier temporaire puis de le renommer/deplacer avec son nom en cyrillique.
Essaie d'utiliser la version à deux arguments: z.write( filename, arcname ) Le premier est le nom du fichier sur le disque, le second est le nom dans le zip. ça permet de couper le problème en 2...
-- Amaury
Do Re Mi chel La Si Do
Bonsoir !
il faut donc encoder le nom en cp437 Aaaaarrrggghhh ! ça va être coton, avec mes noms de fichiers en
cyrillique...
Et moi qui voulait me mettre aux hiéroglyphes...
Je vais peut-être glisser un message sur clp, pour exciter les ricains.
@-salutations
Michel Claveau
Bonsoir !
il faut donc encoder le nom en cp437
Aaaaarrrggghhh ! ça va être coton, avec mes noms de fichiers en
cyrillique...
Et moi qui voulait me mettre aux hiéroglyphes...
Je vais peut-être glisser un message sur clp, pour exciter les ricains.
il faut donc encoder le nom en cp437 Aaaaarrrggghhh ! ça va être coton, avec mes noms de fichiers en
cyrillique...
Et moi qui voulait me mettre aux hiéroglyphes...
Je vais peut-être glisser un message sur clp, pour exciter les ricains.
@-salutations
Michel Claveau
Guillaume Bouchard
Do Re Mi chel La Si Do wrote:
Bonsoir !
Bonsoir.
Effectivement, c'est une idée. Disons que ça me permettra d'attendre Python 2.5, et son projet de refonte de ziplib.
Il y a une autre solution envisageable qui te permettra d'éviter python 2.5 et de garder tes noms en caractères exotiques (non-ascii) et d'utiliser tar + bz2/gz/bz tous fournit dans la lib standard et qui (normalement) gerent les chars utf-8.
Maitenant il faut voir si tu est indépendant de choix techniques imposés pour ce problème...
-- Guillaume.
Do Re Mi chel La Si Do wrote:
Bonsoir !
Bonsoir.
Effectivement, c'est une idée. Disons que ça me permettra d'attendre Python
2.5, et son projet de refonte de ziplib.
Il y a une autre solution envisageable qui te permettra d'éviter python
2.5 et de garder tes noms en caractères exotiques (non-ascii) et
d'utiliser tar + bz2/gz/bz tous fournit dans la lib standard et qui
(normalement) gerent les chars utf-8.
Maitenant il faut voir si tu est indépendant de choix techniques imposés
pour ce problème...
Effectivement, c'est une idée. Disons que ça me permettra d'attendre Python 2.5, et son projet de refonte de ziplib.
Il y a une autre solution envisageable qui te permettra d'éviter python 2.5 et de garder tes noms en caractères exotiques (non-ascii) et d'utiliser tar + bz2/gz/bz tous fournit dans la lib standard et qui (normalement) gerent les chars utf-8.
Maitenant il faut voir si tu est indépendant de choix techniques imposés pour ce problème...