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