acentos en MSDOS

Chema Cortes chemacortes en wanadoo.es
Jue Oct 17 16:31:14 CEST 2002


Barto escribió:
> Hola,
> 
> Estoy utilizando Python 2.2.2 para Windows. Usando IDLE un programa como
> este:
> 
> print "Hola, Ramón"
> raw_input()
> 
> me funciona, pero en MSDOS en vez de la o acentuada me escribe el símbolo de
> tres cuartos.
> Supongo que es un problema del juego de caracteres pero, ¿cómo se arregla?

Efectivamente, hay problema con el juego de caracteres. Por un lado, está la codificación empleada en el fichero de programa. Por otro lado, está la codificación que usa el dispositivo de salida.

Por lo que dices, tiene tu problema tendría estas soluciones:

1) Usar un editor de MsDOS

2) Convetir codificaciones

print "Hola, Ramón".encode("cp850")

3) Solución "hardcode"

print "Hola, Ram\xa2n"

Hay una propuesta para definir la codificación de los ficheros de python, con lo que se paliaría una de las partes del problema.

> Otra cosa. El raw_input() lo pongo para que no me cierre la ventana de MSDOS
> al terminar
> el programa. ¿Se puede configurar Python para que no cierre automáticamente
> la ventana?

No es una cuestión para que la controle python. Lo mejor que puedes hacer es crearte un acceso directo y en propiedades indicarle que no cierre la ventana al finalizar la ejecución.

Si quieres algo más refinado, añade al "sitecustomizer.py" (si no lo tienes, crea uno en el directorio 'site-packages') el siguiente código:

def pause():
  from sys import stdout
  if stdout.istty():
    print "\nPulsa <INTRO> para salir..."
    raw_input()

import atexit
atexit.register(pause)


Saludos,
-- 
Chema Cortes (chemacortes en wanadoo.es)
_____________________________________________________________________
Horas ilimitadas para leer y enviar correos con Tarifa Plana Wanadoo 
¡¡ desde las 3 de la tarde!!
Compruébalo en http://www.wanadoo.es/acceso-internet





Más información sobre la lista de distribución Python-es