[Python-es] Problemas con expresión regular
Narcis Garcia - GiLUG
informatica en actiu.net
Mar Mayo 18 13:24:55 CEST 2010
Yo convertiría el diccionario por ejemplo con el editor de texto plano
de Gnome (gedit): abrir el fichero, 'guardar como', y seleccionar UTF8
en el desplegable de la codificación de carácteres.
En/na Chema Cortes ha escrit:
> El día 18 de mayo de 2010 02:50, Andreina Mejia
> <andreinamejia en gmail.com> escribió:
>> Si imprime bien, pero el problema está en que las palabras que contiene
>> Diccionario.txt no están en utf-8 por lo que no me corrige las palabras
>> acentuadas o las q tengan 'ñ'... por eso la salida es del tipo d\xc3\xada.
>>
>> Cómo hago para colocar todo el contenido de Diccionario.txt en utf-8?
>
> Abre el fichero con 'codecs.open'
>
> import codecs
> NWORDS = train(words(codecs.open('Diccionario.txt',encoding='latin1').read()))
>
> En realidad la pregunta está mal hecha. Debería ser: ¿cómo abrir un
> fichero codificado en XXX para leerlo como unicode? No es lo mismo
> hablar de cadenas unicode que de codificaciones utf8. Una vez creados,
> los objetos unicodes utilizan internamente "codepoints" para su
> representación; la codificación utf8 es una de las codificaciones que
> hay para exportar objetos unicodes para su represetación en ficheros y
> terminales.
>
> En cuanto al resto del asunto, cuando se usa unicode en expresiones
> regulares se generalizan las reglas para detectar palabras. No es
> necesario (ni conveniente) definir explícitamente el alfabeto a usar
> puesto que basta con una expresión '\w+' para detectar cualquier
> palabra.
>
> re.findall("\w+",u"Niño y camión son palabras",re.U)
>
> Ten en cuenta que con unicode funcionan mejor algunos chequeos que
> fallaban con las strings normales:
>
>>>> 'ñ'.islower()
> 0: False
>>>> u'ñ'.islower()
> 1: True
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
Más información sobre la lista de distribución Python-es