Python Subprocess.call和请求输入的程序

Python Subprocess.call和请求输入的程序,python,subprocess,Python,Subprocess,因此,我正在编写一个程序,在某一点上,必须调用一个单独的可执行文件。我正在使用subprocess.call让python脚本调用从命令行执行。问题在于,在执行过程中,可执行文件会提示用户输入两次。我想让我的脚本为可执行文件提供该输入,但我不知道该怎么做 这是在Windows10上,如果这有区别的话 import os os.system("exec_name arguments") 将输入作为参数传递给可执行文件。您必须使用创建一个表示子流程的实例,稍后您要通过instance.commun

因此,我正在编写一个程序,在某一点上,必须调用一个单独的可执行文件。我正在使用
subprocess.call
让python脚本调用从命令行执行。问题在于,在执行过程中,可执行文件会提示用户输入两次。我想让我的脚本为可执行文件提供该输入,但我不知道该怎么做

这是在Windows10上,如果这有区别的话

import os
os.system("exec_name arguments")
将输入作为参数传递给可执行文件。

您必须使用创建一个表示子流程的实例,稍后您要通过instance
.communicate()
方法与该子流程进行通信

像这样的东西应该有用

proc = subprocess.Popen([executable_name] + args,
                        stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                        stderr=subprocess.PIPE)
out, err = proc.communicate(input_str)

子流程。check\u call
在后台执行类似操作。

我尝试过,但它给了我一个错误,告诉我它正在查找字节类型的输入,而不是字符串。将输入切换到字节数组后,我得到了“启动通信后无法发送输入”,这相当令人困惑。在执行可执行文件期间,会在提示用户时请求输入。额外的参数似乎没有任何作用。“问题是,该可执行文件会提示用户输入两次。我希望我的脚本为该可执行文件提供该输入,但我不确定如何执行。”我假设您事先有输入,而该可执行文件对输入的调用是多余的。