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

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


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/aa103dbc/attachment.html>


More information about the pyar mailing list