【发布时间】:2017-07-16 22:15:13
【问题描述】:
所以我正在编写一个程序,在某一时刻,它必须调用一个单独的可执行文件。我正在使用subprocess.call 让我的python 脚本调用从命令行执行。问题是,在执行过程中,该可执行文件会提示用户输入两次。我希望我的脚本为可执行文件提供输入,但我不知道该怎么做。
这是在 Windows 10 上,如果有所作为的话。
【问题讨论】:
标签: python subprocess
所以我正在编写一个程序,在某一时刻,它必须调用一个单独的可执行文件。我正在使用subprocess.call 让我的python 脚本调用从命令行执行。问题是,在执行过程中,该可执行文件会提示用户输入两次。我希望我的脚本为可执行文件提供输入,但我不知道该怎么做。
这是在 Windows 10 上,如果有所作为的话。
【问题讨论】:
标签: python subprocess
import os
os.system("exec_name arguments")
将输入作为参数传递给可执行文件。
【讨论】:
您必须使用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 在后台做了类似的事情。
【讨论】: