【发布时间】:2012-08-23 08:40:25
【问题描述】:
我有一个 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()
【问题讨论】:
-
您确定 exe 是从标准输入读取的,而不是直接从控制台读取的吗?
-
不太确定。珍妮。我认为 exe 从 stdin 读取(因为如果我删除 p.stdin.write('0') 观察到的行为符合预期。)
标签: python windows subprocess python-2.5