在python python os.system() linux中执行命令时给出响应yes/no

Give response yes/no in python when a command is executed os.system() in python linux

考虑像

这样的命令
yum install boto

当我在终端中执行时,继续是要求我输入 yes/no

我可以在python中回复它吗

os.system("yum install boto")

接下来 "Yes" 将通过相同的 python 代码传递到终端,以便安装。好吧,我认为这行不通。如果写在上面的语句之后

os.system("yes")

请问这是否可行?

您可以使用 subprocess.Popen 并写入标准输入,您需要 sudo 的 -S 标志,然后是其余命令。

from subprocess import Popen, PIPE
import getpass

pwd = getpass.getpass()
proc = Popen(['sudo', '-S', rest of commands ],stdout=PIPE, stdin=PIPE, stderr=PIPE,universal_newlines=True)
proc.stdin.write("{}\n".format(pwd))
out,err = proc.communicate(input="{}\n".format("yes"))

您可以添加管道并执行

yes | os.system("yum install boto")

它将重复 yes 直到命令完成