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

Juan Ignacio Rodríguez De León euribates en gmail.com
Mie Mayo 29 16:28:49 ART 2013


¿No será un problema con el nombre del archivo? Esa o acentuada en Nómina.csv

--
Juan Ignacio Rodríguez de León
Euribates en gmail.com
jileon en Twitter

El 29/05/2013, a las 03:46, Leandro E. Colombo Viña <colomboleandro en gmail.com> escribió:

> 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
>>> 
>> 
> 
> _______________________________________________
> 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/20130529/570fca85/attachment.html>


More information about the pyar mailing list