Python:为子进程提供输入

时间:2014-09-16 10:47:53

标签: python windows input subprocess pipe

我必须使用python脚本创建一个具有Admin权限的新进程。我在互联网上搜索了这个主题,发现我必须使用runas命令。对于这个命令,我必须给一个用户,在运行时,脚本将等待密码,我想尽可能自动地执行此操作。

这是我的代码:

import subprocess

p = subprocess.Popen(['runas', '/user:Armando', szCmdCommand], stdin = subprocess.PIPE)
p.stdin.write('password')

而不是.write我尝试了p.communicate(input='password')但它没有工作,因为它没有写密码。唯一发生的事情是脚本不会等待输入。它会自动输入错误的密码并且无法执行我的命令。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

期望输入密码的程序通常不会使用标准输入(stdin)的简单读取,但是它们直接控制终端(正如您在source code of the getpass module中看到的那样)。

使用其他内容,例如: