[pyar] Hola Mundo y [HELP!] Consulta sobre encoding de archivo...
Leandro E. Colombo Viña
colomboleandro en gmail.com
Mie Mayo 29 17:44:13 ART 2013
No, es un problema con la escritura. Ya que para leer ese archivo y mostrar
sus campos lo hice sin problemas. Pero cuando quiero escribirlo en el FDF
es cuando me salta el error del ascii....
En fin, sigo luchando...
El 29 de mayo de 2013 16:28, Juan Ignacio Rodríguez De León <
euribates en gmail.com> escribió:
> ¿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
>
>
> _______________________________________________
> 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/45d14174/attachment.html>
More information about the pyar
mailing list