Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: asdexiva en 6 Agosto 2014, 22:21 pm



Título: [python] ayuda caracteres especiales tildes y ñ python
Publicado por: asdexiva en 6 Agosto 2014, 22:21 pm
Código:
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




Título: Re: [python] ayuda caracteres especiales tildes y ñ python
Publicado por: Eleкtro en 6 Agosto 2014, 22:39 pm
Código:
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
  1. text_file.write(''.join(lol))

Documentación:
· str() (https://docs.python.org/3/library/stdtypes.html#str)
· str.join() (https://docs.python.org/2/library/stdtypes.html#str.join)

Saludos.


Título: Re: [python] ayuda caracteres especiales tildes y ñ python
Publicado por: asdexiva en 7 Agosto 2014, 01:59 am
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


Título: Re: [python] ayuda caracteres especiales tildes y ñ python
Publicado por: Eleкtro en 7 Agosto 2014, 09:54 am
por 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!


Título: Re: [python] ayuda caracteres especiales tildes y ñ python
Publicado por: Godor en 7 Agosto 2014, 17:35 pm
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
  1. lista = ['ayuda','caracteres','especiales','tildes']

Ejemplos.
Código
  1. x = ' '.join(lista)
  2. #salida 'ayuda caracteres especiales tildes'
Código
  1. x = 'ABC'.join(lista)
  2. #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
  1. x = ' '.join(lista[0:2])+', ' + ' '.join(lista[2::])
  2. #salida 'ayuda caracteres, especiales tildes'

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


Título: Re: [python] ayuda caracteres especiales tildes y ñ python
Publicado por: asdexiva en 10 Agosto 2014, 01:49 am
muchas gracias a los 2 solucionado :D