我需要在Python脚本中使用类似于Unix expect
的功能,因为外部可执行文件会提示输入密码。我目前正在这样做:
p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
其中execA
提示输入密码。我想用“expect”来包装它来提供密码。
似乎有一些选择:
最好的方法是什么?如果有更有效的方法,我很想知道。
答案 0 :(得分:1)
Pexpect是我过去用来做这样的事情的。
虽然取决于程序,但只需写入stdin可能就足够了吗?
答案 1 :(得分:0)
这些程序通常直接访问tty并将其置于“原始”模式。因此stdio管道不起作用。您需要在pty中生成子进程。一个简单的读/写可能会有效。那些“期待式”模块通常用于更复杂的场景。
当然我更喜欢this one,但我不确定它是否适用于OSX。