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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.