Wie bekomme ich Daten von stdin mit os.system ()
Frage
Die einzige zuverlässige Methode, die ich für die Verwendung eines Skripts gefunden Text aus Wikipedia zum Download ist mit kräuseln. Bisher ist der einzige Weg, ich habe das zu tun ist os.system()
zu nennen. Auch wenn der Ausgang richtig in dem Python-Shell erscheint, kann ich nicht auf die Funktion scheint es etwas anderes als der Exit-Code zurück (0
). Alternativ könnte jemand zeigen, wie richtig urllib
verwenden.
Lösung
import urllib
sock = urllib.urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)")
htmlsource = sock.read()
sock.close()
print htmlsource
Das wird für den Python Wikipedia-Artikel aus dem Quellcode drucken. Ich schlage vor, Sie für weitere Informationen einen Blick auf Tauchen Sie ein in Python nehmen.
Beispiel mit urllib2 aus dem Python Library Reference:
import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)
Edit: Auch möchten Sie vielleicht einen Blick nehmen unter wget
Andere Tipps
Die Beantwortung der Frage, Python hat ein Subprozess-Modul, das Sie mit gelaicht Prozessen interagieren kann http:. // docs.python.org/library/subprocess.html#subprocess.Popen
Es ermöglicht Ihnen, die stdout für den aufgerufenen Prozess zu lesen, und sogar Elemente in die stdin senden.
aber wie Sie gesagt haben urllib eine viel bessere Option ist. wenn Sie Suche i Stackoverflow ist sicher, dass Sie mindestens 10 andere Fragen finden ...
Als alternetive urllib, könnten Sie die libCurl anweisen verwenden Python-Bindings .