捕獲標準輸出,我有以下腳本:未能從應用
import subprocess
arguments = ["d:\\simulator","2332.txt","2332.log", "-c"]
output=subprocess.Popen(arguments, stdout=subprocess.PIPE).communicate()[0]
print(output)
這給了我B「」作爲輸出。
我也試過這個腳本:
import subprocess
arguments = ["d:\\simulator","2332.txt","atp2332.log", "-c"]
process = subprocess.Popen(arguments,stdout=subprocess.PIPE)
process.wait()
print(process.stdout.read())
print("ERROR:" + str(process.stderr))
這使我的輸出:B「」,錯誤:無
然而,當我運行這個在命令提示符我得到一個5行文字。
d:\simulator atp2332.txt atp2332.log -c
我在模擬器中添加了一個消息框,它在啓動時彈出。這是針對所有三種情況。所以我知道我成功地啓動了模擬器。然而,python腳本並不擔心stdout。
我在做什麼錯?
巴里。
爲什麼你'process.stdout.read()'在同一行和'STR(process.stderr)'就下,在你的第二個代碼示例?你不應該在兩種情況下都使用'read()'嗎? – 2011-05-23 08:29:56
是的,你的權利。當我嘗試:
我也得到一個stderr的空字符串。 – Baz 2011-05-23 08:31:37