Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中以编程方式在提示时输入密码?_Python_Macos_Expect - Fatal编程技术网

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

在Python中以编程方式在提示时输入密码?,python,macos,expect,Python,Macos,Expect,我需要类似于Unixexpect的功能,因为外部可执行文件提示输入密码。我目前正在这样做: p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT) 其中,execA提示输入密码。我想用“expect”来包装它,以提供所述密码 似乎有几种选择: 最好的方法是什么?如果有更有效的方法,我很想知道。Pexpect是我过去用来做这类事情的方法 尽管根据程序的不同,只需写入其标准数据就足够了?这类程序

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

p = subprocess.Popen("execA",stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
其中,
execA
提示输入密码。我想用“expect”来包装它,以提供所述密码

似乎有几种选择:


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

Pexpect是我过去用来做这类事情的方法


尽管根据程序的不同,只需写入其标准数据就足够了?

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


当然我更喜欢,但我不确定它是否能在OSX上工作

尽量不要询问“首选项”(征求意见与常见问题相反),而是询问经验。感谢您的帮助,我使用的是pexpect,但我还了解到,对于kerberos集成密码,密钥表文件可能是更好的选择。如果经过某些处理后显示密码提示,则无法写入stdin。希望这对其他人也有帮助。