このcurlコマンドをUNIXシェルで実行すると、以下のように動作します。私は返されたデータをファイルにリダイレクトすることができましたが、今度はファイル内にたくさんのスペースを浪費するのではなく、コード内のデータを処理したいのです。Popenでの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)
この後、ファイル.stdoutは空です。 curlコマンドで返されるデータは、4,000行(シェルでコマンドを実行するときに確認される)のようなものでなければなりません。サイズはtheFile.stdoutを破っていますか?私は別の何か間違っているのですか?私が使用してみました:
out, err = theFile.communicate()
、その後アウト変数を印刷するが、まだ何も
編集:書式設定と明確化
なぜ 'requests'ライブラリを使用しないのですか?またはシステムのデフォルトの 'urllib'? – SuperSaiyan
related:[なぜshell = Trueは私のサブプロセスを食べますか?](http://stackoverflow.com/q/10661457/4279) – jfs