[英]Run multiple subprocess commands
我在獲取Python AVL時遇到了麻煩。
我需要依次運行兩個命令並獲取整個結果的字符串以進行進一步處理:
wine /Applications/avl.exe ~/documents/aerodynamics_project/input_cases/somefile.avl
這會彈出問題的命令提示符。 OPER
辦案 理想情況下,我想將整個輸出傳遞給字符串。 我不知道該怎么做。 當前代碼:
p = subprocess.Popen("wine /Applications/avl.exe ~/documents/aerodynamics_project/input_cases/1_0.2_-0.26.avl", shell = True)
time.sleep(3)
text = p.communicate("OPER")
print(text)
它運行第一個命令(在終端中顯示結果),然后不執行任何操作。 替換與通話的通信僅返回AttributeError: 'Popen' object has no attribute 'call'
,因此它顯然可以運行那么遠。
您可以嘗試傳遞為顯式參數嗎? 而且,將stdin用作PIPE
p = subprocess.Popen("wine /Applications/avl.exe ~/documents/aerodynamics_project/input_cases/1_0.2_-0.26.avl", shell = True, stdin=subprocess.PIPE).stdin
time.sleep(3)
text = p.communicate(input="OPER")[0]
print(text.decode())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.