Python中Pexpect庫的使用
我們將通過示例介紹Python中的Pexpect。
Python 中的 Pexpect
Python 是一種非常流行的語言,用于數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)。 它是一種非常強(qiáng)大的語言,因?yàn)?Python 具有可用于不同目的的內(nèi)置庫。
在這篇文章中,我們將研究Python中的pexpect。 Pexpect 是一個(gè)功能強(qiáng)大的庫,用于創(chuàng)建子進(jìn)程并自動(dòng)控制它們。
它可以測(cè)試漏洞或執(zhí)行我們能想到的任何任務(wù)。
大多數(shù)情況下,它可用于測(cè)試系統(tǒng)的用例,以檢查系統(tǒng)在某些任務(wù)下的工作情況以及系統(tǒng)在這些任務(wù)下的執(zhí)行情況。 我們還可以用它來自動(dòng)化日常生活中的一些小任務(wù)。
我們可以使用它來組織安裝腳本,以便在多個(gè)服務(wù)器上下載軟件包。 Pexpect 是 Expect 系列交互式多線程命令行解釋器的 Python 接口。
Pexpect 是一個(gè)用于通過網(wǎng)絡(luò)連接在遠(yuǎn)程計(jì)算機(jī)上生成網(wǎng)絡(luò)程序的庫。
它通常用于編寫網(wǎng)絡(luò)服務(wù)腳本,例如 SSH 或 Telnet。 它對(duì)于獨(dú)立的生成程序也很有用。
現(xiàn)在讓我們?cè)谖覀冋陂_發(fā)的軟件中安裝 pexpect。 在 Python 中安裝 pexpect 最簡(jiǎn)單的方法是使用 pip 包管理器。
我們可以使用以下命令安裝它。
# python pip install pexpect
如果沒有安裝pip,可以使用以下命令安裝。
# python pip install python-pip
Python 中 Pexpect 的方法
現(xiàn)在,讓我們討論如何在應(yīng)用程序中使用 pexpect。 我們可以通過三種不同的方法在我們的應(yīng)用程序中使用 pexpect。
我們將討論的第一個(gè)方法是 run()
方法。
Pexpect 中的 Run() 方法
Run()
是 pexpect 的一個(gè)強(qiáng)大方法,可用于執(zhí)行命令并返回從該命令接收到的結(jié)果。 此方法取代了另一個(gè)強(qiáng)大的庫方法 os.system。
現(xiàn)在,讓我們使用這個(gè)方法通過 echo 命令打印 Hello World。 首先,我們將導(dǎo)入 pexpect 庫,然后,我們將使用 run()
方法,如下所示。
# python import pexpect print(pexpect.run('echo Hello World'))
輸出:
從上面的示例中可以看出,我們的方法使用 pexpect 的 run()
方法執(zhí)行 Python 文件內(nèi)的命令行代碼。
從上面的示例中需要注意的一件重要事情是,該命令適用于 Linux 系統(tǒng),而不是 Windows。
Pexpect 中的 Spawn() 方法
現(xiàn)在我們將討論 pexpect 的另一種方法,該方法可用于生成子進(jìn)程并控制它們。 由于我們用命令行提示符替換了 run()
方法中的字符串,因此我們可以在 spawn()
中執(zhí)行相同的操作,并使用它來執(zhí)行 shell 命令并在執(zhí)行后獲取結(jié)果。
現(xiàn)在,讓我們?cè)谑纠惺褂盟?,在該示例中我們將使?nbsp;spawn()
方法啟動(dòng)一個(gè)子進(jìn)程。 我們將使用相同的場(chǎng)景來使用 spawn 來回顯字符串。
之后,我們將向 expect()
方法發(fā)送一個(gè)數(shù)組,以從數(shù)組中的字符串匹配上述命令,并返回與我們的命令匹配的元素的位置,如下所示。
# python import pexpect childProcess = pexpect.spawn("echo Hello World") # prints he matched index of string. print(childProcess.expect(["Python", "Hello World", "Child Process"]))
輸出:
從上面的例子可以看出,字符串在數(shù)組中的位置是第二位,而且數(shù)組是從0開始的,所以輸出的是正確的位置。
在本文中,我們討論了 pexpect 的三種方法,它們可用于執(zhí)行不同的功能,并且它們可以一起使用以使其成為一個(gè)大函數(shù),如上一個(gè)示例所示。
到此這篇關(guān)于Python中Pexpect庫的使用的文章就介紹到這了,更多相關(guān)Python Pexpect內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Scrapy框架實(shí)現(xiàn)的登錄網(wǎng)站操作示例
這篇文章主要介紹了Scrapy框架實(shí)現(xiàn)的登錄網(wǎng)站操作,結(jié)合實(shí)例形式分析了Scrapy登錄網(wǎng)站cookies方式、post請(qǐng)求方式登錄網(wǎng)站相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-02-02Python 代碼在函數(shù)中運(yùn)行得更快的原因解析
我們知道,python 是一種解釋型語言,它會(huì)逐行讀取并執(zhí)行代碼,小伙伴們可能會(huì)有這個(gè)疑問:為什么在函數(shù)中運(yùn)行的 Python 代碼速度更快,今天這篇文章將會(huì)解答大家心中的疑惑2023-09-09Python創(chuàng)建exe運(yùn)行器和截圖工具的示例詳解
本文我們將探討如何使用Python和wxPython創(chuàng)建一個(gè)強(qiáng)大而實(shí)用的桌面應(yīng)用程序,可以遍歷指定文件夾中的所有EXE文件,感興趣的小伙伴可以了解一下2024-10-10解決python中 f.write寫入中文出錯(cuò)的問題
今天小編就為大家分享一篇解決python中 f.write寫入中文出錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10