問題

私はここで出力をキャプチャしようとしています。 Pythonプロンプトで実行すると

 p = subprocess.Popen(["/path/to/search_by_hash.par", hash_str], 
                      stdout=subprocess.PIPE)
 

戻り値(リスト)はstdoutに出力されますが、キャプチャされません

 [4460475, 4406612, 4379510]
 

私はそれをフォローしようとしました

 value = p.communicate()[0]
value
 

..しかし、値は空の文字列で、私が期待していたintのリストではなく、stdoutに出力されています

私は文字列でsubprocess.Popen呼び出しののソリューションを実験しましたが、出力をキャプチャできませんでした。

更新:

stderrは何も得られないようです...そして、私が探しているリストは印刷されています...それをキャプチャするのに運がないだけです。以下を参照してください:

 >>> p = subprocess.Popen(["/home/jfry/tools/search_by_hash.par", hash_str], 
                          stdout=subprocess.PIPE)
>>> 
[4460475, 4406612, 4379510]
    value, err  = p.communicate()
>>> value
''
>>> err
 

ありがとう!

  ベストアンサー

p.communicate()[1]stderrをチェックしてみてください。

  同じタグがついた質問を見る

pythonsubprocess