[英]Multiple stdin.write usage with python
我有一個Visual Studio應用程序,它需要諸如
- PATH
輸入時,顯示MENU#1(再次接受參數/用戶輸入),輸入時再次顯示MENU#2。
我需要從Python調用此VS應用程序(exe)。 我有限制要堅持使用Python 2.5版本。
我嘗試使用subprocess.popen和stdin.write。
我可以通過MENU#1進行解析,但無法繼續進行MENU#2,依此類推...
關於實現上述目標的任何提示/示例。
我的代碼如下:
p = subprocess.Popen('app.exe',stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=None)
p.stdin.write(file_path) # for menu 1
time.sleep(0.5)
p.stdin.write('0') # for menu 2..
...
o,e = p.communicate()
改用pexpect
模塊 ; 與子流程模塊相比,它使您可以更好地控制具有交互式輸入的程序。
import pexpect
p = pexpect.spawn('app.exe')
p.sendline(file_path)
p.expect('Menu #2:.*')
p.sendline('0')
對於Windows,可以改用wexpect.py
,它是pexpect
模塊到Windows控制台的端口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.