在Python中以提示编程方式输入密码?

时间:2011-08-09 07:22:53

标签: python macos expect

我需要在Python脚本中使用类似于Unix expect的功能,因为外部可执行文件会提示输入密码。我目前正在这样做:

p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

其中execA提示输入密码。我想用“expect”来包装它来提供密码。

似乎有一些选择:

Pexpect - Noah Spurrier

Python Expect

最好的方法是什么?如果有更有效的方法,我很想知道。

2 个答案:

答案 0 :(得分:1)

Pexpect是我过去用来做这样的事情的。

虽然取决于程序,但只需写入stdin可能就足够了吗?

答案 1 :(得分:0)

这些程序通常直接访问tty并将其置于“原始”模式。因此stdio管道不起作用。您需要在pty中生成子进程。一个简单的读/写可能会有效。那些“期待式”模块通常用于更复杂的场景。

当然我更喜欢this one,但我不确定它是否适用于OSX。