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/