join con cadenas con caracteres con acentos

Dani Muñiz dani en areoso.com
Jue Mayo 3 14:23:48 CEST 2007


Ola Marcos, perdona la demora en mi respuesta.
Me ha servido de mucha ayuda tu contestación. Muchas Gracias!!

La codificación es uno de mis mayores problemas al trabajar con python. 
no sabía que internamente había que trabajar con unicode. Pienso que 
esto me va a ayudar mucho.

Muchas gracias de nuevo!!


Marcos Sánchez Provencio escribiu:
> linea está codificada en iso-8859-15 o similares. Al empezar, tendrás
> que decírselo a Python:
>
> linea= unicode('1#\xc1\xc9\xcd\xd3\xda\xd1\xe1\xe9\xed\xf3
> \xfa##PRUEBA(PRUEBA)#06##1#0#\n','iso-8859-15')
>
> print linea #usando la codificación de mi sistema
> 1#ÁÉÍÓÚÑáéíóú##PRUEBA(PRUEBA)#06##1#0#
>
> Para trabajar con caracteres no-ascii, hay que convertirlos a unicode
> indicando la codificación del fichero de entrada cuanto antes.
> Internamente, hay que trabajar en unicode siempre. Al final, para volcar
> el resultado a un fichero o a la pantalla, hay que indicar la
> codificación de nuevo. Existe una codificación predeterminada del
> sistema que a veces funciona como queremos y a veces no tanto.
>
> Saludos
>
> El jue, 26-04-2007 a las 20:31 +0200, Dani Muñiz escribió:
>   
>> Lo que hago es tomar el texto de un fichero txt
>> lo paso a la variable linea y despues:
>>
>> linea= '1#\xc1\xc9\xcd\xd3\xda\xd1\xe1\xe9\xed\xf3\xfa##PRUEBA 
>> (PRUEBA)#06##1#0#\n'
>>
>> linea=linea.split("#")
>> unif=""
>> for linea2 in linea:
>>   unif=unif+"#"+linea2
>> unif=unif+"#"
>> unif=unif+"#"+linea2
>>
>> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 38-39: 
>> invalid data
>> Traceback (most recent call last):
>>   File "C:\python\impPres\frmPrin.py", line 112, in OnBtRepararButton
>>     unif=unif+"#"+linea2
>> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 38-39: 
>> invalid data
>>
>> aquí falla por los parentesis pero no se por que? ni que puedo hacer 
>> (esto es lo peor).
>>
>> Tambien he probado esto (realmente esto es lo primero que probé y sin 
>> acentos funciona)
>> unif=string.join(linea,"#")
>>
>> Pero al concatenarlo arroja este error
>>
>> result=result+unif
>> UnicodeDecodeError: 'utf8' codec can't decode bytes in position 2-3: 
>> invalid data
>>
>> Alguna sugerencia?
>>
>> Gracias.
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en aditel.org
>> http://listas.aditel.org/listinfo/python-es
>>     
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>   

-- 
Remitente:
Daniel Muñiz Fontoira
Eu uso software libre [1]
[1]http://www.gnu.org/philosophy/free-sw.gl.html



------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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