溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

發(fā)布時(shí)間:2021-10-21 14:27:20 來源:億速云 閱讀:108 作者:iii 欄目:編程語言

這篇文章主要介紹“如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil”,在日常操作中,相信很多人在如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

/模塊介紹/

1、安裝。使用pip命令進(jìn)行安裝即可。

pip install psutil

2、基本用法

老樣子,先使用dir看它有哪些方法,為了不看那些平時(shí)很少用到的方法,小編決定這樣做:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

3、可以看出,命令不是很多,這是因?yàn)檫^濾了一些帶下劃線的命令,不過已經(jīng)夠用了。里面有很多我們比較熟悉的方法。先試試幾個(gè)看看跟我們想的結(jié)果是否一樣。

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

可以看出第一個(gè)命令打印出來當(dāng)前的用戶名信息,第二個(gè)則是打印出了系統(tǒng)中所有的pid,也就是如下所示:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

可以看到所有的進(jìn)程號(hào),那么獲取這些進(jìn)程號(hào)有什么用呢?答案是肯定的。我們可以憑借這些進(jìn)程號(hào)獲取到程序相關(guān)進(jìn)程進(jìn)而獲取到程序的目錄。

4、那么我們應(yīng)該怎樣通過進(jìn)程號(hào)獲取到進(jìn)程呢?我們這里有一個(gè)process方法,知道進(jìn)程的人都了解這是一個(gè)進(jìn)程方法,所以我們選用這個(gè)來試試看。

我們先選擇一個(gè)pid號(hào)試試看能不能捕捉到進(jìn)程,我們選擇684,如下圖所示:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

5、這樣我們就獲取到了這個(gè)進(jìn)程,然后我們使用 方法:

pp.name()

就可以獲取到進(jìn)程對(duì)應(yīng)的程序名是哪一個(gè)了,后面還有時(shí)間。

6、那么我們現(xiàn)在是不是就可以把所有的進(jìn)程名和進(jìn)程列舉出來了?請(qǐng)看下圖:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

是不是簡單到超出你的想象?反之,我們也可以通過進(jìn)程名來推敲出進(jìn)程所在的所有pid號(hào)噢,請(qǐng)看下圖:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

7、通過對(duì)process方法的進(jìn)一步延伸,發(fā)現(xiàn)它還有好多有趣的方法:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

pp.children(recursive=True)  返回這個(gè)進(jìn)程的子元素作為一個(gè)進(jìn)程的列表,如果遞歸是真的返回所有父的后代 pp.cmdline() 命令行 pp.connentions(kind='inet') 返回套接字連接打開的過程作為一個(gè)列表 pp.cpu_affinity(cpus=None)   獲取或設(shè)置CPU關(guān)聯(lián)過程 pp.cpu_percent(interval=None) 返回一個(gè)浮點(diǎn)數(shù)表示當(dāng)前進(jìn)程的CPU pp.cpu_times()  返回一個(gè)(用戶、系統(tǒng)、子用戶 子系統(tǒng))代表的過程 pp.create_time() 進(jìn)程創(chuàng)建時(shí)間 pp.cwd()  進(jìn)程的當(dāng)前工作目錄的絕對(duì)路徑 pp.environ()  環(huán)境變量 pp.exe()   當(dāng)前進(jìn)程的可執(zhí)行文件的一個(gè)絕對(duì)路徑 pp.kill()  殺死當(dāng)前進(jìn)程 pp.username() 用戶擁有流程的名稱 pp.ppid() 返回進(jìn)程父pid pp.open_files() 進(jìn)程打開的文件 pp.resume() 恢復(fù)所有進(jìn)程線程的影響 pp.status()  進(jìn)程當(dāng)前狀態(tài) pp.num_threads() 進(jìn)程的線程數(shù)量 pp.threads()  所有線程 pp.pid   進(jìn)程pid pp.terminal() 進(jìn)程終端 pp.terminate() 進(jìn)程結(jié)束

8、還有一些方法,大家可以一個(gè)個(gè)去發(fā)掘,用法挺簡單的,在此就不一一例舉了。

9、下面我們來看看psutil其他的帶下劃線的方法,如下圖所示:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

可以看到有很多cpu,disk,net開頭的方法。

10、通過平時(shí)對(duì)英語的積累,相信大家應(yīng)該能猜到這些方法的用處了,下面我們來看看:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

可以看出第一個(gè)是CPU的內(nèi)核數(shù)量,因?yàn)槲业氖?G內(nèi)存,因此得出,第二個(gè)則是獲取c盤容量使用情況。

11、psutil 中還有個(gè)非常牛逼的方法,它就是test,它可以模擬出像任務(wù)管理器一樣的列表,如下圖所示:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

怎么樣,是不是很牛了?哈哈哈,有了這些知識(shí)做積累相信你很快就能做一個(gè)軟件出出來了。

12、在這里小編做了一個(gè)還算不錯(cuò)的小程序,就是打印出當(dāng)前所有進(jìn)程pid和進(jìn)程名以及路徑,效果如下圖所示:

如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil

可以應(yīng)該可以看出加了一個(gè)if語句,這是因?yàn)橛械倪M(jìn)程是系統(tǒng)進(jìn)程,是沒有權(quán)限是無法訪問的。

到此,關(guān)于“如何使用Python庫中操作系統(tǒng)級(jí)別模塊Psutil”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI