[pyar] Hola Mundo y [HELP!] Consulta sobre encoding de archivo...
Roberto Alsina
ralsina en netmanagers.com.ar
Mar Mayo 28 14:07:51 ART 2013
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)
More information about the pyar
mailing list