Función UPPER
luis miguel morillas
morillas en posta.unizar.es
Jue Dic 2 15:30:13 CET 2004
Asunto: [Python-es] Función UPPER
Fecha: jue, dic 02, 2004 at 02:38:38 +0100
Citando a Amm-Python (python en ammsoft.com):
> Al utilizar la función upper() me convierte los carateres de minúscular
> a mayúsculas, pero NO las vocales acentuadas.
> He de utilizar algún proceso especial?
El problema seguramente será el encoding del sistema. Puedes modificar el
encoding por defecto de tu entorno, pero eso haría tu código menos portable.
A mí la solución que más me gusta (aunque al principio parezca más farragosa)
es la siguente:
# -*- coding: iso-8859-1 -*-
import codecs, sys
micadena = 'áéíóúñ'
enc, dec, rwrap, wwrap = codecs.lookup('latin1')
output = wwrap(sys.stdout)
u = micadena.decode('latin1')
print >> output, u.upper()
Si modificas el encoding, no haría falta nada, pero tú has comprobado que
ya no se ejecutaría bien en todas las máquinas. Mira:
>>> import sys
>>> sys.getdefaultencoding()
'ISO8859-1'
>>> print 'áéíóúñ'.upper()
ÁÉÍÓÚÑ
Espero haberme explicado :)
>
>
> Mi código es el siguiente:
>
> # -*- coding: iso-8859-1 -*-
>
> f = open('paises-2.txt','r')
>
> for linea in f:
> print linea.upper()
>
> f.close()
>
>
> Un Saludo
> Toni Martínez
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
--
Luis Miguel
No a las patentes de software en Europa
EuropeSwPatentFree
http://EuropeSwPatentFree.hispalinux.es
Más información sobre la lista de distribución Python-es