Ich führe diesen Curl-Befehl in der Unix-Shell und es funktioniert (siehe unten). Ich konnte die zurückgegebenen Daten in eine Datei umleiten, aber jetzt möchte ich die Daten in meinem Code verarbeiten, anstatt eine Menge Speicherplatz in einer Datei zu verschwenden.Verwenden von Curl in Popen in Python
curl -k -o outputfile.txt 'obfuscatedandVeryLongAddress'
#curl command above, python representation below
addr = "obfuscatedandVeryLongAddress"
theFile = subprocess.Popen(["curl", "-k", addr], stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True)
Danach ist theFile.stdout leer. Die im Befehl "curl" zurückgegebenen Daten sollten etwa 4.000 Zeilen umfassen (überprüft, wenn der Befehl in der Shell ausgeführt wird). Bricht die Größe theFile.stdout? Mache ich etwas anderes falsch? Ich habe versucht, mit:
out, err = theFile.communicate()
und dann den Druck der aus variabel, aber immer noch nichts
edit: Formatierung und Klärung
Warum verwenden Sie nicht die Bibliothek 'requests'? Oder Systemstandard "urllib"? – SuperSaiyan
verwandt: [Warum ist Shell = True essen mein Subprozess.Popen stdout?] (Http://stackoverflow.com/q/10661457/4279) – jfs