在python中执行命令时,回答yes / no python linux中的os.system()

考虑一个类似的命令

yum install boto 

当我在terminal执行,进行是要求我是/否

我可以用python来回应吗?

 os.system("yum install boto") 

下一步"Yes"将通过相同的Python代码传递给terminal,以便安装。 那么,我不认为这个工程。 如果是在上面声明之后写的

 os.system("yes") 

请告诉我这是可能的吗?

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

 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") 

它会重复是,直到命令完成