我为c程序开发了一个python gui。本程序要求输入两个密码。 如何等待密码promt,然后在代码中插入密码?Python popen()询问时输入密码
目前,我尝试通过这样做:
subprocess.popen.communicate(input)
但由于程序要求在shell中再次输入密码不起作用。
只是为了在这里你的理解是程序的流程:
- 壳:有一些参数执行程序
- 标准输出: “请插入PW 1”
- 标准输入:PW1
- 标准输出: “请插入PW 2”
- 标准输入:PW2
我为c程序开发了一个python gui。本程序要求输入两个密码。 如何等待密码promt,然后在代码中插入密码?Python popen()询问时输入密码
目前,我尝试通过这样做:
subprocess.popen.communicate(input)
但由于程序要求在shell中再次输入密码不起作用。
只是为了在这里你的理解是程序的流程:
您应该考虑使用另一个库:Pexpect
Pexpect是一个用于产生子应用程序的纯Python模块; 控制它们;并对其产出中的预期模式做出反应。 Pexpect像Don Libes的期待一样工作。 Pexpect允许脚本 生成一个子应用程序并对其进行控制,就像人类正在键入 命令一样。
下面是代码,得到用户名和密码的样品连接到FTP服务器时:
import pexpect
child = pexpect.spawn('ftp ftp.openbsd.org')
child.expect('Name .*: ')
child.sendline('bob')
child.expect('Password:')
child.sendline('thisisnotasecurepassword')
的可能的复制[无法与子\ [蟒\]的方法提供密码]( http://stackoverflow.com/questions/25189348/unable-to-provide-password-to-a-process-with-subprocess-python) –