acentos en MSDOS
Marcos Sánchez Provencio
rapto en arrakis.es
Vie Oct 18 12:00:37 CEST 2002
Curiosamente, sys.stdout.isatty() da valores diferentes en una ventana
MS-DOS y en IDLE (64 y 1, resp.). Que algún guru diga cómo aprovechar
esto.
El vie, 18-10-2002 a las 07:28, Bartolomé Sintes Marco escribió:
> Muchas gracias a Marcos y Chema por intentar resolver mis problemas con los
> acentos,
> pero no me sirven vuestras sugerencias porque "necesito" una solución
> simple.
> Soy profesor de Instituto y estoy intentando enseñar a programar a alumnos
> de
> Bachillerato (tengo colgado el curso en www.mclibre.org, por si a alguien le
> sirve).
> El curso empieza desde cero y, cuando los alumnos todavía no saben lo que es
> una función no creo que sea conveniente empezar a marearles con unicode.
> Por eso me gustaría encontrar una solución simple, y por simple entiendo
> modificar
> algún archivo de configuración o un sitecustomize.py, es decir, que una vez
> corregido no haya que preocuparse más. Porque al fin y al cabo, me parece un
> poco
> absurdo que el programa dé dos resultados distintos según que se haga en
> IDLE o
> en modo texto...
>
> Envié anoche un mensaje a comp.lang.python a ver si alguien me sugería algo
> y me
> han contestado con el siguiente programa:
> ##### Principio del programa
> sa = "Spanish accents: á é í ó ú" # som we can see sample.sa interactively
> class L1to437:
> import sys
> def __init__(self):
> self.so = L1to437.sys.stdout
> def on(self):
> L1to437.sys.stdout = self
> def off(self):
> L1to437.sys.stdout = self.so
> def write(self, s):
> self.so.write(s.decode('latin-1').encode('cp437'))
> so437 = L1to437()
>
> if __name__ == '__main__':
> print "Before: Spanish accents: á é í ó ú"
> so437.on()
> print " On: Spanish accents: á é í ó ú"
> so437.off()
> print " Off: Spanish accents: á é í ó ú"
> end = raw_input()
> ##### Final del programa
>
> Al leerlo ha parecido que tenía buena pinta. Pero al ejecutarlo en IDLE me
> da el error siguiente:
>
> Traceback (most recent call last):
> File "C:\Mis documentos\Barto\02-03 Abastos\Python\Acentos\Acentos en
> vantena MSDOS - Solución 1.py", line 20, in ?
> print " On: Spanish accents: á é í ó ú"
> File "C:\Mis documentos\Barto\02-03 Abastos\Python\Acentos\Acentos en
> vantena MSDOS - Solución 1.py", line 14, in write
> self.so.write(s.decode('latin-1').encode('cp437'))
> File "C:\PYTHON22\lib\encodings\cp437.py", line 18, in encode
> return codecs.charmap_encode(input,errors,encoding_map)
> UnicodeError: charmap encoding error: character maps to <undefined>
>
> y a partir de entonces no puedo ni grabar un archivo con IDLE. ¿Alguien
> puede decirme
> por qué falla y si se puede corregir el error? Mis alumnos y yo os lo
> agradeceremos.
>
> Gracias,
> Barto
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo.py/python-es
Más información sobre la lista de distribución Python-es