[pyar] Hola Mundo y [HELP!] Consulta sobre encoding de archivo...

Leandro E. Colombo Viña colomboleandro en gmail.com
Mar Mayo 28 23:46:59 ART 2013


Se me escapó el "Enviar"

El error que me devuelve es:

Traceback (most recent call last):
  File "./PDF_Form.py", line 91, in <module>
    data = process_csv("Nómina.csv")
  File "./PDF_Form.py", line 54, in process_csv
    for i, row in enumerate(csv_data):
UnicodeEncodeError: 'ascii' codec can't encode character u'\xda' in
position 1: ordinal not in range(128)

Si me pueden explicar qué es lo que está pasando, se los agradecería
sobremanera!


El 28 de mayo de 2013 23:45, Leandro E. Colombo Viña <
colomboleandro en gmail.com> escribió:

> Ok, la cuestión sigue sin funcionarme....
>
> Agregué la conversión del archivo CSV de *iso-8859-1* a *utf-8* y anduvo
> de 10. Pero me parece que el error ahora lo tengo en la escritura de los
> campos dentro de la lista.
>
> with codecs.open(csvfile1,"rb",encoding="iso-8859-1") as csv_file_org:
>    with codecs.open(csvfile2,"wb",encoding="utf-8") as csv_file:
>       for linea in csv_file_org.readlines():
>          csv_file.write(linea)
>          print(linea)
>       csv_file.close()
>       csv_file_org.close()
>
>
> El 28 de mayo de 2013 20:04, Leandro E. Colombo Viña <
> colomboleandro en gmail.com> escribió:
>
> Ahhhh! Entonces debería hacer un "open" del CSV que está codificado en
>> ISO-8859-1 y luego un "close" para uqe me lo guarde como UTF-8. Y después
>> trabajo con el archivo ese que está directamente en UTF-8.
>>
>> Ahora lo que no entendí muy bien, es el uso del *with*. ¿Cuál es la
>> diferencia?
>>
>> MIL GRACIAS!
>>
>> Ya lo estoy probando
>>
>>
>> El 28 de mayo de 2013 15:01, Juan Ignacio <euribates en gmail.com> escribió:
>>
>> Si, con with sería lo deseable, o con try/finally. Lo puse así para
>>> simplificar el ejemplo. Gracias por el apunte.
>>>
>>>
>>> 2013/5/28 Roberto Alsina <ralsina en netmanagers.com.ar>
>>>
>>>> On 28/05/13 13:53, Juan Ignacio wrote:
>>>> > Puedes usar el módulo codecs para abrir un fichero indicándole la
>>>> > codificación a usar. Por ejemplo, si tienes un fichero en iso-8859-1 y
>>>> > quieres salvarlo como utf-8, puedes hacer:
>>>> >
>>>> > import codecs
>>>> > fin = codecs.open('entrada.txt', 'rb', encoding='iso-8859-1')
>>>> > fout = codecs.open('saluda.txt', 'wb', encoding='utf-8')
>>>> > for linea in fin.readlines():
>>>> >     fout.write(linea)
>>>> > fout.close()
>>>> > fin.close()
>>>> >
>>>>
>>>> Ese código tiene un problemita: si pasa algo entre el open y el close
>>>> (ya sé que en este ejemplo sería raro ;-),
>>>> leakeás filehandles que en linux no importa, pero en windows sí. Yo
>>>> vengo tratando de usar siempre context managers:
>>>>
>>>> with codecs.open(''entrada.txt', 'rb', encoding='iso-8859-1') as fin:
>>>>     with codecs.open('saluda.txt', 'wb', encoding='utf-8') as fout:
>>>>         for linea in fin.readlines():
>>>>             fout.write(linea)
>>>>
>>>>
>>>>
>>>> > Con el fichero abierto de esa manera, puedes (y debes :-)) trabajar en
>>>> > unicode, él hace las conversiones necesarias de forma transparente.
>>>> > Este código, si el fichero pepe.py está correctamente codificando en
>>>> > utf-8, vemos que las líneas son todas unicode :
>>>> >
>>>> > import codecs
>>>> > for l in codecs.open('pepe.py', encoding='utf-8'):
>>>> >     print type(l)
>>>>
>>>> _______________________________________________
>>>> pyar mailing list pyar en python.org.ar
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>>
>>>
>>>
>>>
>>> --
>>> Juan Ignacio Rodríguez de León
>>> Móvil: 605 890514
>>> E-Mail: euribates en gmail.com
>>> http://www.metriz.com/
>>> http://descon2.com/
>>> http://www.elornitorrincoenmascarado.com/
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130528/bcb8070c/attachment.html>


More information about the pyar mailing list