簡體   English   中英

python的多個stdin.write用法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM