【问题标题】:Give response yes/no in python when a command is executed os.system() in python linux在 python linux 中执行命令 os.system() 时,在 python 中给出响应是/否
【发布时间】:2015-04-24 02:05:54
【问题描述】:

考虑一个类似的命令

yum install boto

当我在终端中执行时,继续询问我是/否

我可以在 python 中回复它吗

os.system("yum install boto")

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

os.system("yes")

请告诉我这是否可能?

【问题讨论】:

标签: python linux python-2.7 os.system


【解决方案1】:

你可以添加一个管道并做

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

它会重复yes直到命令完成

【讨论】:

    【解决方案2】:

    您可以使用 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"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多