Python - escribir en .txt

 
Vista:
sin imagen de perfil
Val: 26
Ha aumentado su posición en 332 puestos en Python (en relación al último mes)
Gráfica de Python

escribir en .txt

Publicado por Santiago (11 intervenciones) el 23/06/2021 20:31:53
Hola, estoy creando un programa de búsquedas en wikipedia (utilizando wikipedia.summary) y en una parte del programa hay que escribir los resultados en un archivo txt. Este es el código que utilizo:

1
2
3
4
5
6
7
8
9
10
11
wikipedia.set_lang("es")
resultados = wikipedia.summary(búsqueda, sentences=3)
print('Según wikipedia')
 
wikipediaresults = open('ruta/wikipediaresults.txt', 'w')
 
wikipediaresults = wikipediaresults.write(resultados)[code]
donde 'búsqueda' sería el nombre de una variable Input donde está lo que deseamos buscar. El programa imprime 'Según Wikipedia' a la perfección, pero a la hora de escribir en el TXT me da el siguiente error:
 
[code]    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u200b' in position 226: character maps to <undefined>

¿Alguien sabe qué puedo hacer?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

escribir en .txt

Publicado por tincopasan (1082 intervenciones) el 23/06/2021 22:25:16
hice un ejemplo, fijate si te funciona:

1
2
3
4
5
6
7
8
9
10
import wikipedia
 
busqueda = "BMW"
 
wikipedia.set_lang("es")
 
resultados = wikipedia.summary(busqueda, sentences=3)
 
with open("resultados.txt","wb") as archivo:
    archivo.write(resultados.encode("utf8"))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 26
Ha aumentado su posición en 332 puestos en Python (en relación al último mes)
Gráfica de Python

escribir en .txt

Publicado por Santiago (11 intervenciones) el 24/06/2021 09:55:00
El código funciona, pero me ha surgido un problema. Tengo otro programa que debería leer lo que he escrito:

1
2
archivo = open('ruta', 'r')
archivoread = archivo.read()

y me da este error:

1
TypeError: an integer is required (got type str)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

escribir en .txt

Publicado por tincopasan (1082 intervenciones) el 24/06/2021 22:49:33
probá con esta sintaxis:

1
2
3
4
with open('archivo.txt') as archivo:
    archivoread = archivo.read()
 
print(archivoread)
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

escribir en .txt

Publicado por Francisco Javier (313 intervenciones) el 24/06/2021 23:43:05
prueba a poner
1
with io.open('ruta/wikipediaresults.txt', "w", encoding="utf-8") as wikipediaresults:

en lugar de
1
wikipediaresults = open('ruta/wikipediaresults.txt', 'w')
o simplemente
1
wikipediaresults = open('ruta/wikipediaresults.txt', 'w',encoding="utf-8")
lo importante es el encoding utf8 por si al imprimir algo de wikipedia se encuentra algo codificado en utf8 y no lo has colocado te salta el error.
prúebalo y me cuentas.
un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar