一篇文章帶你解鎖Python庫中操作系統(tǒng)級別模塊Psutil
/前言/
psutil是一個強大的可以獲取操作系統(tǒng)運行進程和CPU使用率的模塊,主要可以用于系統(tǒng)監(jiān)控分析,它也是可以跨平臺使用的模塊。這篇文章主要是介紹該模塊的安裝和基本用法,下面我們就來看看它到底有哪些使用功能吧。
/模塊介紹/
1、安裝。使用pip命令進行安裝即可。
- pip install psutil
2、基本用法
老樣子,先使用dir看它有哪些方法,為了不看那些平時很少用到的方法,小編決定這樣做:
3、可以看出,命令不是很多,這是因為過濾了一些帶下劃線的命令,不過已經(jīng)夠用了。里面有很多我們比較熟悉的方法。先試試幾個看看跟我們想的結(jié)果是否一樣。
可以看出第一個命令打印出來當前的用戶名信息,第二個則是打印出了系統(tǒng)中所有的pid,也就是如下所示:
可以看到所有的進程號,那么獲取這些進程號有什么用呢?答案是肯定的。我們可以憑借這些進程號獲取到程序相關(guān)進程進而獲取到程序的目錄。
4、那么我們應(yīng)該怎樣通過進程號獲取到進程呢?我們這里有一個process方法,知道進程的人都了解這是一個進程方法,所以我們選用這個來試試看。
我們先選擇一個pid號試試看能不能捕捉到進程,我們選擇684,如下圖所示:
5、這樣我們就獲取到了這個進程,然后我們使用 方法:
- pp.name()
就可以獲取到進程對應(yīng)的程序名是哪一個了,后面還有時間。
6、那么我們現(xiàn)在是不是就可以把所有的進程名和進程列舉出來了?請看下圖:
是不是簡單到超出你的想象?反之,我們也可以通過進程名來推敲出進程所在的所有pid號噢,請看下圖:
7、通過對process方法的進一步延伸,發(fā)現(xiàn)它還有好多有趣的方法:
- pp.children(recursive=True) 返回這個進程的子元素作為一個進程的列表,如果遞歸是真的返回所有父的后代
- pp.cmdline() 命令行
- pp.connentions(kind='inet') 返回套接字連接打開的過程作為一個列表
- pp.cpu_affinity(cpus=None) 獲取或設(shè)置CPU關(guān)聯(lián)過程
- pp.cpu_percent(interval=None) 返回一個浮點數(shù)表示當前進程的CPU
- pp.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() 返回進程父pid
- pp.open_files() 進程打開的文件
- pp.resume() 恢復(fù)所有進程線程的影響
- pp.status() 進程當前狀態(tài)
- pp.num_threads() 進程的線程數(shù)量
- pp.threads() 所有線程
- pp.pid 進程pid
- pp.terminal() 進程終端
- pp.terminate() 進程結(jié)束
8、還有一些方法,大家可以一個個去發(fā)掘,用法挺簡單的,在此就不一一例舉了。
9、下面我們來看看psutil其他的帶下劃線的方法,如下圖所示:
可以看到有很多cpu,disk,net開頭的方法。
10、通過平時對英語的積累,相信大家應(yīng)該能猜到這些方法的用處了,下面我們來看看:
可以看出第一個是CPU的內(nèi)核數(shù)量,因為我的是4G內(nèi)存,因此得出,第二個則是獲取c盤容量使用情況。
11、psutil 中還有個非常牛逼的方法,它就是test,它可以模擬出像任務(wù)管理器一樣的列表,如下圖所示:
怎么樣,是不是很牛了?哈哈哈,有了這些知識做積累相信你很快就能做一個軟件出出來了。
12、在這里小編做了一個還算不錯的小程序,就是打印出當前所有進程pid和進程名以及路徑,效果如下圖所示:
可以應(yīng)該可以看出加了一個if語句,這是因為有的進程是系統(tǒng)進程,是沒有權(quán)限是無法訪問的。
13、更多的方法希望大家有空多看看文檔,沒有什么難的。重要的是你肯學(xué)就沒有克服不了的障礙,希望可以幫助到大家。
/小結(jié)/
本文主要介紹了強大的可以獲取操作系統(tǒng)運行進程和CPU使用率的模塊psutil ,介紹了該模塊的安裝和基本使用方法,并帶大家了解了一些簡單的操作系統(tǒng)知識,希望對大家的學(xué)習有幫助。
本文轉(zhuǎn)載自微信公眾號「Python爬蟲與數(shù)據(jù)挖掘」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Python爬蟲與數(shù)據(jù)挖掘公眾號。