[python] ayuda caracteres especiales tildes y ñ python

Iniciado por asdexiva, 6 Agosto 2014, 22:21 PM

0 Miembros y 1 Visitante están viendo este tema.

asdexiva

import mechanize
import cookielib
import sys
import codecs





br = mechanize.Browser()


cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)



mensaje= codecs.open ("mensaje.txt", "r", "iso-8859-1")



lol=mensaje.read().split('\n')

         

text_file = codecs.open("Output.txt", "w","iso-8859-1")
text_file.write(str(lol))
text_file.close()


el programa importa el archivo mensaje.txt que tiene acentos,ñ y varias cosas y luego lo guarda con el nombre outpot.txt pero lo guarda con caracteres raros unicode alguien podria ayudarme a solucionarlo



Eleкtro

#1
Cita de: asdexiva en  6 Agosto 2014, 22:21 PM
text_file.write(str(lol))

Estás tratando la lista como si fuese un string por ende se muestra el contenido RAW, no estás convirtiendo la lista a String, debes unir los elementos de la lista:

Código (python) [Seleccionar]
text_file.write(''.join(lol))

Documentación:
· str()
· str.join()

Saludos.








asdexiva

#2
gracias elektro como siempre muy asertivo :D  ;-)
elektro para que es ' ' <----- .join el .join no xD
por que esas 2 comillas si me pudieras decir gracias

Eleкtro

#3
Cita de: asdexiva en  7 Agosto 2014, 01:59 AMpor que esas 2 comillas si me pudieras decir gracias

Join es un método de String para concatenar un Iterable (una list por ejemplo), por lo tanto es necesario un String para utilizarlo, y las dos comillas es un String vacío para que nos permita utilizar métodos de String como ya dije que es Join.

Quizás haya otra forma más simple de unir una lista, pero en ese caso lo desconozco (practicamente no manejo Python)

Saludos!








Godor

Como bien dice Elektro, Join es un metodo para 'pegar los elementos de una lista', y se utiliza de la siguiente forma.

str.join(lista)

En donde el str será el 'pegamento' que ocuparemos para unir nuestros elementos de una lista, te daré algunos ejemplo a continuación.

Todos estos ejemplos serán utilizando la variable lista a definir a continuación.

Código (python) [Seleccionar]
lista = ['ayuda','caracteres','especiales','tildes']

Ejemplos.
Código (python) [Seleccionar]

x = ' '.join(lista)
#salida 'ayuda caracteres especiales tildes'

Código (python) [Seleccionar]

x = 'ABC'.join(lista)
#salida ayudaABCcaracteresABCespecialesABCtildes'

Además puedes ocupar este método para luego sumarlo con otros strings, por ejemplo, para agregar 'comas', en una oración.
Código (python) [Seleccionar]

x = ' '.join(lista[0:2])+', ' + ' '.join(lista[2::])
#salida 'ayuda caracteres, especiales tildes'


Eso es en lo que puedo aportar en cuanto a la función join, saludos!

asdexiva