Re: [Python-es] Manipulación de archivos con caract eres no ascii en XP
Chema Cortes <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
El 2 de septiembre de 2009 15:18, Oswaldo Hernández<[email protected]> escribió: > Hola a todos, Como es un mensaje muy largo, me centraré en las partes interesantes: > Sistema: Python 2.5, Windows XP SP3 > Condiguración de encoding y locale: >>>> sys.getdefaultencoding() > 'UTF-8' >>>> sys.getfilesystemencoding() > 'mbcs' >>>> locale.getlocale() > ('es_ES', 'cp1252') Falta un dato más: en qué está codificado tu terminal. Puedo comprobar por los ejemplos que usas wxshell (o similar) con codificación "utf8". Todos tus problemas provienen de que los nombres de los ficheros se codifican en 'mbcs', o sea, emplea la codificación ANSI de la terminal (='cp1252'); mientras que usas la codificación utf8 para la terminal y en la codificación por defecto a unicode. El nombre del fichero correcto es 'c:\\temp\\Im\xe1genes.txt' (codificado en cp1252). Todos los demás errores se deben a que intentas abrir un fichero llamado 'c:\\temp\\Im\xc3\xa1genes.txt' (en utf8), con excepción de un par de errores que los da wxpython cuando intenta "representar" el nombre del fichero como utf8. Como solución posible: usa nombres en unicode y conviértelos a mbcs antes de acceder al fichero fichero=unicode("c:\\temp\\Imágenes.txt","utf8") open(fichero.encode("mbcs")) Aunque lo que te aconsejo para evitar estos problemas es emplear siempre utf8 para dar nombres a los ficheros. _______________________________________________ Lista de correo Python-es http://listas.aditel.org/listinfo/python-es FAQ: http://listas.aditel.org/faqpyes