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

Sai*_*tha 1 python linux os.system python-2.7

考虑一个类似的命令

yum install boto
Run Code Online (Sandbox Code Playgroud)

当我在终端中执行时,继续进行是要我是/否

我可以在python中回应吗

os.system("yum install boto")
Run Code Online (Sandbox Code Playgroud)

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

os.system("yes")
Run Code Online (Sandbox Code Playgroud)

请告诉我是否可行?

Pad*_*ham 5

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

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"))
Run Code Online (Sandbox Code Playgroud)