我有一个简单的windows可执行文件,它要求用户输入,我正试图编写一个python脚本来自动输入。 我所做的:
from subprocess import Popen, PIPE
p = Popen([r'myprgm.exe'], stdin=PIPE)
p.communicate(input=bytes(input("Test Input"), 'UTF-8'))
现在,通常当程序运行时,它输出到命令提示符“givemeinput:”然后期望用户输入。在
如果我将Popen与stdin=PIPE
选项一起使用,则不会向命令提示符写入任何内容—它只是空白。在
然后,当我使用communication时,“测试输入”最终会出现在python控制台上,而不是进程中。在
像这样的事情有可能自动化吗?或者我在这里遗漏了一些基本的东西。。在
您可以将} 函数。在
input
赋予^{像
您看到输出是因为^{} function 打印它。如果要将
Test Input
逐字传递给子进程,请删除input()
调用:不能保证}输入可能错误。传递字节在ascii范围内的bytestring应该是可以的(使用
myprgm.exe
在Windows上接受utf-8输入(它可能接受使用Windows控制台OEM编码(如cp437
)或Windows ANSI编码(如cp1252
)编码的输入),因此{b''
bytes literal创建的)。在相关问题 更多 >
编程相关推荐