¿Cómo obtengo datos de stdin usando os.system ()
Pregunta
El único método confiable que he encontrado para usar un script para descargar texto de wikipedia es con cURL. Hasta ahora, la única forma que tengo para hacerlo es llamar a os.system()
. A pesar de que la salida aparece correctamente en el shell de Python, parece que la función no puede devolver nada más que el código de salida (0
). Alternativamente, alguien podría mostrar cómo usar correctamente urllib
.
Solución
import urllib
sock = urllib.urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)")
htmlsource = sock.read()
sock.close()
print htmlsource
Eso imprimirá el código fuente del artículo de Python Wikipedia. Te sugiero que eches un vistazo a Sumérgete en Python para obtener más detalles.
Ejemplo usando urllib2 de la Referencia de la biblioteca de Python:
import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)
Editar: También es posible que desee echar un vistazo a wget.
Edit2: ejemplo de urllib2 agregado basado en el consejo de S.Lott
Otros consejos
Respondiendo la pregunta, Python tiene un módulo de subproceso que le permite interactuar con procesos generados. http: // docs.python.org/library/subprocess.html#subprocess.Popen
Le permite leer el stdout para el proceso invocado e incluso enviar elementos al stdin.
sin embargo, como dijiste, urllib es una opción mucho mejor. si busca stackoverflow, estoy seguro de que encontrará al menos otras 10 preguntas relacionadas ...
Como alternativa a urllib, puede usar libCurl enlaces de Python .