pexpect 是乙個用來啟動子程式並對其進行自動控制的 python 模組。 pexpect 可以用來和像 ssh、ftp、passwd、telnet 等命令列程式進行自動互動。以下所有**都是在kali linux環境下,python 2.7.13
pexpect中的 pexpect.spawn() 和 pexpect.run() 依賴於python標準庫中的 pty 模組,而pty模組只在posix系統中存在,所以在windows系統上的功能有限。
pexpect模組首先通過生成子應用以**互動應用,這樣就可以通過檢測子應用的模式匹配情況以響應互動應用的輸出。
對於以下**:
connect()函式接收的引數包括乙個使用者名稱、主機名和密碼,返回ssh的連線結果。利用pexpect庫,程式會等待乙個可預計到的輸出。如:超時、公鑰資訊改變或要求輸入密碼。如果出現超時,session.expect()返回零,列印乙個錯誤訊息後返回。如果child.expect()方法捕獲了ssh_newkey的訊息,它會返回數字1,使函式傳送 yes 訊息以接收新秘鑰,之後等待密碼提示符傳送ssh密碼。一旦通過驗證,我們就可以使用乙個單獨的command()函式在ssh會話中傳送命令。command()函式需要接收的引數是乙個ssh會話和命令字串,然後,它向會話傳送命令字串,並等待命令提示符再次出現,在獲得命令提示符後,該函式把從ssh會話處得到的結果列印出來
pexpect模組的使用
pexpect 是 expect 語言的乙個 python 實現,是乙個用來啟動子程式,並使用正規表示式對程式輸出做出特定響應,以此實現與其自動互動的 python 模組。pexpect 的使用範圍很廣,可以用來實現與 ssh ftp telnet 等程式的自動互動 可以用來自動複製軟體安裝包並在不...
Python的Pexpect的簡單使用
pexpect 是乙個用來啟動子程式並對其進行自動控制的純 python 模組。pexpect 可以用來和像 ssh ftp passwd telnet 等命令列程式進行自動互動。本文主要是針對ssh遠端登入,然後執行簡單的新建資料夾與拷貝任務 pexpect 的安裝 解壓後在目錄下執行 pytho...
Pexpect模組的pxssh擴充套件子模組詳解
在pexpect模組中,pexpect.pxssh.pxssh類擴充套件自pexpect.spawn類,專用於ssh連線的設定。通過pxssh類的login 方法,在第一次連線遠端ssh伺服器的時候,能夠將伺服器的證書儲存在known hosts中。pxssh類支援通過金鑰認證,而無需輸入密碼。px...