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