【问题标题】:Auto input answer for a terminal command within python scriptpython脚本中终端命令的自动输入答案
【发布时间】:2017-03-30 05:42:31
【问题描述】:

我制作了一个 python 脚本,它在其中运行指定的终端命令。

def main(my_list):
    for item in my_list:
        os.system("myCmd -s {0}".format(item))

    item_list = ['itemA', 'itemB', 'itemC']
    main(item_list)

由于我尝试使用的终端命令不接受-s 参数中的列表,这就是我将它变成python 脚本的原因。 运行脚本时,它可以工作,但我注意到它会提示我以下问题: Are you sure you want to continue (y/n)?

这意味着我需要在我的键盘上敲击y,在上面的示例中敲击 3 次。 但是,如果我的列表很大,并且我不应该在我的办公桌上,有什么方法可以编写脚本让它接受“y”作为我的答案,而无需我按键盘上的任何东西?

【问题讨论】:

    标签: python


    【解决方案1】:

    您需要使用pipe,这样您才能真正向该管道写入答案,完成后不要忘记关闭管道。

    p = os.popen("myCmd -s {0}".format(item), "w")
    p.write("y\n")
    

    popen 文档

    【讨论】:

    • 很高兴我能帮助@dissidia
    【解决方案2】:

    使用 pexpect 模块。它基本上 expect 用于 Python 的 shell 脚本中。

    【讨论】:

    • 我没有机会对此进行测试,因为看来我需要安装它。但我相信它也可以!
    猜你喜欢
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多