如何生成进程并忽略所有用户提示?

时间:2012-03-20 20:23:53

标签: python user-input subprocess

我正在尝试使用Windows上的Python自动安装和卸载UNC驱动器。我正在使用subprocess模块来执行各种命令,因此我可以记录它们的输出。但是,NET USE命令偶尔会提示用户输入(如密码)。通常情况下效果很好,但由于我使用subprocess.communicate(),当NET USE询问我的“子进程”输入时,我的程序会无限期挂起。当然,我不知道它要求输入。它只是坐在那里耐心等待,让我感到沮丧。

这是一个比NET USE更普遍的问题,所以请不要走那条路。还有其他一些(其他)程序请求输入和我的程序冻结的情况。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

有些程序很聪明,并且意识到如果用户无法输入任何内容,那么他​​们甚至不应该问。对于此类程序,可以将“stdin = open('/ dev / null')”添加到subprocess.Popen选项中。

在更困难的情况下,程序真正坚持进行交互,你所能做的只是自己提供交互。

编辑:我应该提到pexpect库是进行此类交互的好方法。