在python脚本中自动输入终端命令的答案

时间:2017-03-29 21:25:39

标签: python

我制作了一个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'作为我的答案,没有我在键盘上按任何东西?

2 个答案:

答案 0 :(得分:1)

使用 pexpect模块。对于Python来说,它基本上是期望在shell脚本中使用。

答案 1 :(得分:1)

您需要使用pipe,这样您实际上可以写一个答案,一旦您完成了管道,就不要忘记关闭管道。

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

popen文档