在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 直到命令完成
考虑像
这样的命令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 直到命令完成