我正在尝试使用Windows上的Python自动安装和卸载UNC驱动器。我正在使用subprocess
模块来执行各种命令,因此我可以记录它们的输出。但是,NET USE
命令偶尔会提示用户输入(如密码)。通常情况下效果很好,但由于我使用subprocess.communicate()
,当NET USE
询问我的“子进程”输入时,我的程序会无限期挂起。当然,我不知道它要求输入。它只是坐在那里耐心等待,让我感到沮丧。
这是一个比NET USE
更普遍的问题,所以请不要走那条路。还有其他一些(其他)程序请求输入和我的程序冻结的情况。有什么想法吗?
答案 0 :(得分:1)
有些程序很聪明,并且意识到如果用户无法输入任何内容,那么他们甚至不应该问。对于此类程序,可以将“stdin = open('/ dev / null')”添加到subprocess.Popen选项中。
在更困难的情况下,程序真正坚持进行交互,你所能做的只是自己提供交互。
编辑:我应该提到pexpect库是进行此类交互的好方法。