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

Juan Ignacio euribates en gmail.com
Jue Mayo 30 09:39:35 ART 2013


¿Y el fidhero FDF como lo has abierto? ¿usando codecs o con un open a pelo?
Creo que nos haría falta más código


2013/5/29 Leandro E. Colombo Viña <colomboleandro en gmail.com>

> 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
>>
>
>
> _______________________________________________
> 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/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130530/43991cfa/attachment.html>


More information about the pyar mailing list