0
我使用python中的子流程來捕捉來自bazel應用tensorflow的結果。Python子流程輸出
import subprocess
cmd = ["bazel-bin/tensorflow/examples/label_image/label_image"]
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
output = pipe.communicate()[0]
print "Result: ", output
的問題是,結果顯示在終端,我無法捕捉到它的變量「輸出」
,並返回結果:(無)
嘗試使用'stderr = subprocess.PIPE'和'output,err = pipe.communicate()'來捕獲stderr並查看錯誤信息。 – sberry
正如@sberry所說 - 輸出可能會發送到'stderr' ...另外,當使用'subprocess'模塊時,你可以在'Popen'周圍使用'check_output'包裝器,例如:'output = subprocess.check_output(cmd ,stderr = subprocess.PIPE,shell = True)' –
另外,這裏不需要'shell = True'。該命令位於列表中,可以在不通過子shell的情況下執行。 – tdelaney