【发布时间】:2014-11-13 14:04:27
【问题描述】:
我有一个简单的 Windows 可执行文件,它要求用户输入,我正在尝试制作一个 python 脚本来自动输入。 我做了什么:
from subprocess import Popen, PIPE
p = Popen([r'myprgm.exe'], stdin=PIPE)
p.communicate(input=bytes(input("Test Input"), 'UTF-8'))
现在,通常当程序运行时,它会输出到命令提示符“给我输入:”然后等待用户输入。
如果我将 Popen 与 stdin=PIPE 选项一起使用,则根本不会将任何内容写入命令提示符 - 它只是空白。
然后,当我使用通信时,“测试输入”最终出现在 python 控制台上,而不是进程上。
是否可以自动化这样的事情?还是我在这里遗漏了一些基本的东西..
【问题讨论】:
-
您必须在调用
communicate之前提供输入