在Python中以编程方式在提示时输入密码?
我需要类似于Unix在Python中以编程方式在提示时输入密码?,python,macos,expect,Python,Macos,Expect,我需要类似于Unixexpect的功能,因为外部可执行文件提示输入密码。我目前正在这样做: p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT) 其中,execA提示输入密码。我想用“expect”来包装它,以提供所述密码 似乎有几种选择: 最好的方法是什么?如果有更有效的方法,我很想知道。Pexpect是我过去用来做这类事情的方法 尽管根据程序的不同,只需写入其标准数据就足够了?这类程序
expect
的功能,因为外部可执行文件提示输入密码。我目前正在这样做:
p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
其中,execA
提示输入密码。我想用“expect”来包装它,以提供所述密码
似乎有几种选择:
最好的方法是什么?如果有更有效的方法,我很想知道。Pexpect是我过去用来做这类事情的方法
尽管根据程序的不同,只需写入其标准数据就足够了?这类程序通常直接访问tty并将其置于“原始”模式。所以标准管道不起作用了。您需要在pty中生成子流程。一个简单的读/写操作就可以了。这些“类似预期”的模块通常用于更复杂的场景
当然我更喜欢,但我不确定它是否能在OSX上工作 尽量不要询问“首选项”(征求意见与常见问题相反),而是询问经验。感谢您的帮助,我使用的是pexpect,但我还了解到,对于kerberos集成密码,密钥表文件可能是更好的选择。如果经过某些处理后显示密码提示,则无法写入stdin。希望这对其他人也有帮助。