我爲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) –