【问题标题】:Programmatically enter password on prompt within Python?在 Python 中以编程方式在提示符下输入密码?
【发布时间】:2011-08-09 07:22:52
【问题描述】:

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

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

execA 提示输入密码。我想用“expect”包装它以提供所说的密码。

似乎有几种选择:

Pexpect - Noah Spurrier

Python Expect

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

【问题讨论】:

  • 尽量不要问“偏好”(征求意见是违反FAQ的)而是经验。

标签: python macos expect


【解决方案1】:

Pexpect 是我过去用来做这种事情的一个。

虽然取决于程序,只写入它的标准输入可能就足够了?

【讨论】:

  • 感谢您的帮助,我使用的是 pexpect,但我还了解到,对于 kerberos 集成密码,keytab 文件可能是更好的选择。如果在某些处理后显示密码提示,则无法写入标准输入。希望这对其他人也有帮助。
【解决方案2】:

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

当然我更喜欢this one,但我不确定它是否可以在 OSX 上运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2021-08-09
    • 2016-04-01
    • 2019-01-23
    • 2015-08-28
    相关资源
    最近更新 更多