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