Subprocess.call和要求输入的程序

时间:2017-02-26 08:41:54

标签: python subprocess

所以我正在编写一个程序,在某一点上,必须调用一个单独的可执行文件。我正在使用subprocess.call让我的python脚本从命令行调用所述可执行文件。问题是,在执行期间,该可执行文件会提示用户输入两次。我希望我的脚本能够提供输入的可执行文件,但我不知道该怎么做。

这是在Windows 10上,应该有所作为。

2 个答案:

答案 0 :(得分:0)

import os
os.system("exec_name arguments")

将输入作为参数传递给可执行文件。

答案 1 :(得分:0)

您必须使用subprocess.Popen class创建一个表示您希望稍后通过实例.communicate()方法进行通信的子流程的实例。

这样的事情应该有效

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

subprocess.check_call做了类似的事情。