一篇文章帶你解鎖Python庫中操作系統(tǒng)級別模塊psutil
回復“書籍”即可獲贈Python從入門到進階共10本電子書
/前言/
???psutil是一個強大的可以獲取操作系統(tǒng)運行進程和CPU使用率的模塊,主要可以用于系統(tǒng)監(jiān)控分析,它也是可以跨平臺使用的模塊。這篇文章主要是介紹該模塊的安裝和基本用法,下面我們就來看看它到底有哪些使用功能吧。
/模塊介紹/
1、安裝。使用pip命令進行安裝即可。
pip install psutil2、基本用法
老樣子,先使用dir看它有哪些方法,為了不看那些平時很少用到的方法,小編決定這樣做:

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

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

可以看到所有的進程號,那么獲取這些進程號有什么用呢?答案是肯定的。我們可以憑借這些進程號獲取到程序相關進程進而獲取到程序的目錄。
4、那么我們應該怎樣通過進程號獲取到進程呢?我們這里有一個process方法,知道進程的人都了解這是一個進程方法,所以我們選用這個來試試看。
我們先選擇一個pid號試試看能不能捕捉到進程,我們選擇684,如下圖所示:

5、這樣我們就獲取到了這個進程,然后我們使用 方法:
pp.name()就可以獲取到進程對應的程序名是哪一個了,后面還有時間。
6、那么我們現(xiàn)在是不是就可以把所有的進程名和進程列舉出來了?請看下圖:

是不是簡單到超出你的想象?反之,我們也可以通過進程名來推敲出進程所在的所有pid號噢,請看下圖:

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

pp.children(recursive=True) 返回這個進程的子元素作為一個進程的列表,如果遞歸是真的返回所有父的后代pp.cmdline() 命令行pp.connentions(kind='inet') 返回套接字連接打開的過程作為一個列表pp.cpu_affinity(cpus=None) 獲取或設置CPU關聯(lián)過程pp.cpu_percent(interval=None) 返回一個浮點數(shù)表示當前進程的CPUpp.cpu_times() 返回一個(用戶、系統(tǒng)、子用戶 子系統(tǒng))代表的過程pp.create_time() 進程創(chuàng)建時間pp.cwd() 進程的當前工作目錄的絕對路徑pp.environ() 環(huán)境變量pp.exe() 當前進程的可執(zhí)行文件的一個絕對路徑pp.kill() 殺死當前進程pp.username() 用戶擁有流程的名稱pp.ppid() 返回進程父pidpp.open_files() 進程打開的文件pp.resume() 恢復所有進程線程的影響pp.status() 進程當前狀態(tài)pp.num_threads() 進程的線程數(shù)量pp.threads() 所有線程pp.pid 進程pidpp.terminal() 進程終端pp.terminate() 進程結(jié)束
8、還有一些方法,大家可以一個個去發(fā)掘,用法挺簡單的,在此就不一一例舉了。
9、下面我們來看看psutil其他的帶下劃線的方法,如下圖所示:

可以看到有很多cpu,disk,net開頭的方法。
10、通過平時對英語的積累,相信大家應該能猜到這些方法的用處了,下面我們來看看:

可以看出第一個是CPU的內(nèi)核數(shù)量,因為我的是4G內(nèi)存,因此得出,第二個則是獲取c盤容量使用情況。
11、psutil 中還有個非常牛逼的方法,它就是test,它可以模擬出像任務管理器一樣的列表,如下圖所示:

怎么樣,是不是很牛了?哈哈哈,有了這些知識做積累相信你很快就能做一個軟件出出來了。
12、在這里小編做了一個還算不錯的小程序,就是打印出當前所有進程pid和進程名以及路徑,效果如下圖所示:

可以應該可以看出加了一個if語句,這是因為有的進程是系統(tǒng)進程,是沒有權限是無法訪問的。
13、更多的方法希望大家有空多看看文檔,沒有什么難的。重要的是你肯學就沒有克服不了的障礙,希望可以幫助到大家。
/小結(jié)/
????本文主要介紹了強大的可以獲取操作系統(tǒng)運行進程和CPU使用率的模塊psutil ,介紹了該模塊的安裝和基本使用方法,并帶大家了解了一些簡單的操作系統(tǒng)知識,希望對大家的學習有幫助。今天分享的內(nèi)容就到這里了,感謝大家的支持~
????想學習更多關于Python的知識,可以參考學習網(wǎng)址:http://pdcfighting.com/,點擊閱讀原文,可以直達噢~
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學習群請在后臺回復【入群】
萬水千山總是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
