Autor
|
Tema: Escribiendo strings en archivos (python 2.6) (Leído 5,495 veces)
|
Carloswaldo
Traductor
Moderador Global
Desconectado
Mensajes: 4.764
Nos reservamos el derecho de ban.
|
Bien pues tengo un código bastante simple, más o menos así: import urllib a="http://diveintopython.org/html_processing/extracting_data.html" #Abrimos la url f = urllib.urlopen(a) s = f.read(10000) #Escribimos el resultado en un archivo log_file = open("log.txt", "w+" ,10000) log_file.write(s) f.close() raw_input()
Lo que hace es obtener el html de la url y guardarlo en un txt, o al menos eso es lo que debería hacer. El problema es que al ejecutar el script efectivamente se crea el archivo .txt pero solo se guarda una parte del html, y solo se guardará completo cuando se termine de ejecutar el script. Buscando he encontrado esto: http://docs.python.org/library/stdtypes.html#file.writefile.write(str) Write a string to the file. There is no return value. Due to buffering, the string may not actually show up in the file until the flush() or close() method is called. El .close() lo tengo y aún agregando un .flush() antes del .close() no me da los resultados que deseo. ¿Alguien sabe como puedo solucionar esto?
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Probaste sin usar buffer? s = f.read() #Escribimos el resultado en un archivo log_file = open("log.txt", "w+")
Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
CaronteGold
Desconectado
Mensajes: 339
|
Probaste sin usar buffer? s = f.read() #Escribimos el resultado en un archivo log_file = open("log.txt", "w+")
Saludos Si quitas el buffer, y haces print a " s ", se ve todo, pero luego al escribirlo en un .txt, aparece hasta poco antes del final, pero quedan lineas sin terminar... EDITO: Ya sé por qué es, tienes que cerrar tambien log_file, quedando log_file.close() Saludos.
|
|
« Última modificación: 5 Enero 2010, 00:53 am por CaronteGold »
|
En línea
|
|
|
|
Carloswaldo
Traductor
Moderador Global
Desconectado
Mensajes: 4.764
Nos reservamos el derecho de ban.
|
Probaste sin usar buffer? s = f.read() #Escribimos el resultado en un archivo log_file = open("log.txt", "w+")
Saludos Sí, de hecho ese fue mi código original, pensé que indicando el número de bytes arreglaría el problema pero no fue así. Ya sé por qué es, tienes que cerrar tambien log_file, quedando log_file.close()
Funcionó perfecto. Gracias
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Ya sé por qué es, tienes que cerrar tambien log_file, quedando log_file.close()
Funcionó perfecto. Gracias Que ya no tenías el close()?, era justamente lo que ponía en la documentación oficial file.write(str) Write a string to the file. There is no return value. Due to buffering, the string may not actually show up in the file until the flush() or close() method is called. El .close() lo tengo y aún agregando un .flush() antes del .close() no me da los resultados que deseo. ¿Alguien sabe como puedo solucionar esto?
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
... ... tampoco esta de más decir que el importante es el file.close(), el de urllib se va a cerrar de cualquier manera, pero el file puede quedar bloqueado y no permitir acceder posteriormente Y bueno, solucionado entonces .... Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Carloswaldo
Traductor
Moderador Global
Desconectado
Mensajes: 4.764
Nos reservamos el derecho de ban.
|
Sip, a veces me trabo en tonterías xD Gracias a los 2.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema escribiendo un archivo en Python
Scripting
|
Arnau27
|
7
|
5,025
|
8 Enero 2012, 12:46 pm
por Arnau27
|
|
|
[SOURCE] SQL Optimizer - Limpie las Strings mal exportadas en sus archivos .sql
.NET (C#, VB.NET, ASP)
|
z3nth10n
|
0
|
1,615
|
4 Agosto 2013, 00:18 am
por z3nth10n
|
|
|
Problema con Python archivos
Scripting
|
AdeLax
|
2
|
2,903
|
26 Octubre 2013, 21:37 pm
por 0x5d
|
|
|
[?][C++] Vectores, strings y archivos con clase - C++
Programación C/C++
|
marlboreano
|
6
|
3,723
|
7 Marzo 2015, 14:37 pm
por marlboreano
|
|
|
[Python] Strings diferentes
Python
|
Sentex
|
0
|
1,602
|
22 Enero 2019, 20:41 pm
por Sentex
|
|