El lun, 28-02-2011 a las 09:06 +0100, Antonio Alvarado Hernández
escribió:
> Hola Jesús,
> 
> Los temas de encoding de tus ficheros fuente, se resuelven como bien
> te han comentado Juan, lopz y Oscar (no sé si me he dejado a alguien).
>  Pero, si lees/escribes datos desde fichero, te toca la hacer como te
> han explicado Raúl, Luis, Andrey (y seguro que se me escapa otro).
> 
> Para facilitarte la vida, puedes usar el módulo "codecs". He intentado
> reproducir tu ejemplo, con este código:
> 
> # -*- coding: utf-8 -*-
> 
> from codecs import open
> 
> INPUT_ENCODING = 'cp1252'
> OUTPUT_ENCODING = 'utf-8'
> 
> with open('input.dat', 'rb', INPUT_ENCODING) as infile:
>       with open('output.dat', 'wb', OUTPUT_ENCODING) as outfile:
>               while True:
>                       inline = infile.readline()
>                       if not inline:
>                               break
>                       outline = u"set title '%s (%s)'" % 
> tuple(inline.split('\t'))

He intentado utilizar tu código pero me da errores igualmente. 

He adjuntado a pastebin el código completo, si alguien me puede
ayudar...

http://pastebin.com/x3DFTkjD

S2
>                       outfile.write(outline)
> 
> # EOF
> 
> Fíjate que estoy usando el "open" del módulo "codecs" no el built-in
> de Python (en mi caso Python 2.7.1).  También debes fijarte en que los
> valores INPUT_ENCODING y OUTPUT_ENCODING, son arbitrarios: he creado
> un fichero de datos de entrada (input.dat) con encoding cp1252 (el de
> Windoze de toda la vida), y a partir de allí, genero un fichero de
> salida (output.dat) con encoding UTF-8 (el de Linux desde hace un
> tiempo pa'ca ;-).  Debes ajustarlo a tus necesidades.
> 
> Saludos,
> Antonio
> 
> PD: Mola el tema en el que estás medido... el de los *.MC, no el de
> los encodings!
> 
> 2011/2/27 Juan de Dios Manjon Perez <jua...@jdmanjon.net>:
> > Prueba a poner en la primera linea:
> >
> > # -*- coding: cp1252 -*-
> >
> > Saludos
> > Juande
> >
> >
> >
> > On 27/02/2011 19:44, Jesús Genicio wrote:
> >>
> >> Hola a tod@s:
> >>
> >> Llevo tiempo buscando la solución y no soy capaz. El problema es este:
> >>
> >> BME.MC
> >> Bolsas y Mercados Españoles
> >> Traceback (most recent call last):
> >>   File "extraer_datos.py", line 80, in<module>
> >>     archivo_configuracion.write("set title '%s (%s)'\n"
> >> %( Nombre_Valor,id,))
> >> UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in
> >> position 33: ordinal not in range(128)
> >>
> >> Los datos los saco de una base de datos y tiene el formato Español, con
> >> eñes y acentos, etc..
> >>
> >> Pero al ejecutar este script, me tira el error y separa. ¿Qué hago mal.?
> >>
> >>
> >> Gracias por vuestra ayuda.
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Python-es mailing list
> >> Python-es@python.org
> >> http://mail.python.org/mailman/listinfo/python-es
> >> FAQ: http://python-es-faq.wikidot.com/
> >>
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es@python.org
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> >
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/


_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a