Python標(biāo)準(zhǔn)庫(kù)學(xué)習(xí)之psutil內(nèi)存詳解
人生苦短,快學(xué)Python!
今天介紹的是psutil模塊,它是一個(gè)跨平臺(tái)庫(kù) https://github.com/giampaolo/psutil
命令行下通過(guò)pip安裝:
pip install psutil
如果跟我一樣安裝的是Anaconda,則剩下這步了,因?yàn)樽詭Я恕?/p>
顧名思義
psutil = process and system utilities
它專(zhuān)門(mén)用來(lái)獲取操作系統(tǒng)以及硬件相關(guān)的信息,比如:CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)、進(jìn)程管理等。

今天這篇文章,就來(lái)給大家介紹一下其常用功能和使用方法。
查詢(xún)CPU信息
先導(dǎo)入psutil模塊,獲取CPU的信息數(shù)據(jù)。
import psutil
# CPU邏輯數(shù)量
psutil.cpu_count()
# CPU物理核心
psutil.cpu_count(logical=False)
# 統(tǒng)計(jì)CPU的用戶(hù)/系統(tǒng)/空閑時(shí)間
psutil.cpu_times()
# interval:每隔0.5s刷新一次
# percpu:查看所有的cpu使用率
for x in range(5):
print(psutil.cpu_percent(interval=0.5, percpu=True))
輸出結(jié)果:

注:大家如果對(duì)jupyter notebook 同時(shí)輸出多個(gè)變量感興趣,可以查看這篇文章
《15個(gè)應(yīng)該掌握的Jupyter Notebook使用技巧(小結(jié))》
查詢(xún)內(nèi)存信息
輸出內(nèi)存使用情況(總內(nèi)存、可用內(nèi)存、內(nèi)存使用率、已使用內(nèi)存)。
psutil.virtual_memory()

比如上面輸出的total=16499146752即為總內(nèi)存16G,已使用內(nèi)存/總內(nèi)存= 76.0%(內(nèi)存使用率)。
查詢(xún)磁盤(pán)信息
可以通過(guò)psutil獲取磁盤(pán)分區(qū)、磁盤(pán)使用率和磁盤(pán)IO信息。
# 磁盤(pán)分區(qū)信息
psutil.disk_partitions()
# 磁盤(pán)使用情況
psutil.disk_usage('/')
# 磁盤(pán)IO
psutil.disk_io_counters()

其中,返回的IO信息指標(biāo)有磁盤(pán)IO信息
read_count(讀IO數(shù))
write_count(寫(xiě)IO數(shù))
read_bytes(IO寫(xiě)字節(jié)數(shù))
read_time(磁盤(pán)讀時(shí)間)
write_time(磁盤(pán)寫(xiě)時(shí)間)
查詢(xún)網(wǎng)絡(luò)信息
使用psutil庫(kù)查詢(xún)網(wǎng)絡(luò)讀寫(xiě)字節(jié)/包的個(gè)數(shù)。
psutil.net_io_counters()

其中,返回的數(shù)據(jù)指標(biāo)有
btes_sent: 發(fā)送的字節(jié)數(shù)
bytes_recv: 接收的字節(jié)數(shù)
packets_sent: 發(fā)送的包數(shù)據(jù)量
packets_recv: 接收的包數(shù)據(jù)量
errin: 接收包時(shí), 出錯(cuò)的次數(shù)
errout: 發(fā)送包時(shí), 出錯(cuò)的次數(shù)
dropin: 接收包時(shí), 丟棄的次數(shù)
dropout: 發(fā)送包時(shí), 丟棄的次數(shù)
除此以外,還有很多獲取網(wǎng)絡(luò)接口和網(wǎng)絡(luò)連接信息的函數(shù)。
比如
psutil.net_if_addrs()獲取網(wǎng)絡(luò)接口信息
psutil.net_if_stats()獲取網(wǎng)絡(luò)接口狀態(tài)等。
查詢(xún)進(jìn)程信息
最后,使用psutil模塊也能獲取所有進(jìn)程的詳細(xì)信息數(shù)據(jù)!
psutil.pids() # 所有進(jìn)程ID

返回的結(jié)果包括了所有進(jìn)程的ID(pid)。
根據(jù) pid 可以獲取一個(gè)進(jìn)程對(duì)應(yīng)的 Process 對(duì)象,而這個(gè)對(duì)象里面包含了該進(jìn)程的全部數(shù)據(jù)。
下面我們指定進(jìn)程ID=113408,其實(shí)就是當(dāng)前Python交互環(huán)境,來(lái)獲取該進(jìn)程的信息。
# 獲取指定進(jìn)程ID=113408,其實(shí)就是當(dāng)前Python交互環(huán)境 p = psutil.Process(113408) # 進(jìn)程名稱(chēng) p.name() # 進(jìn)程的exe路徑 p.exe() # 進(jìn)程的工作目錄 p.cwd() # 進(jìn)程啟動(dòng)的命令行 p.cmdline() # 當(dāng)前進(jìn)程id p.pid

總而言之,psutil使得我們可以輕松用Python程序獲取各類(lèi)系統(tǒng)信息。
本文只介紹了該模塊的安裝和基本使用方法,后續(xù)大家想了解更多詳情,可以參考psutil的官 https://github.com/giampaolo/psutil
以上就是Python標(biāo)準(zhǔn)庫(kù)學(xué)習(xí)之psutil內(nèi)存詳解的詳細(xì)內(nèi)容,更多關(guān)于Python標(biāo)準(zhǔn)庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python編寫(xiě)簡(jiǎn)單爬蟲(chóng)資料匯總
本文給大家匯總介紹了下幾種使用Python編寫(xiě)簡(jiǎn)單爬蟲(chóng)的方法和代碼,非常的不錯(cuò),這里分享給大家,希望大家能夠喜歡。2016-03-03
Python實(shí)現(xiàn)將元組中的元素作為參數(shù)傳入函數(shù)的操作
這篇文章主要介紹了Python實(shí)現(xiàn)將元組中的元素作為參數(shù)傳入函數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
python寫(xiě)入csv時(shí)writerow()和writerows()函數(shù)簡(jiǎn)單示例
這篇文章主要給大家介紹了關(guān)于python寫(xiě)入csv時(shí)writerow()和writerows()函數(shù)的相關(guān)資料,writerows和writerow是Python中csv模塊中的兩個(gè)函數(shù),用于將數(shù)據(jù)寫(xiě)入CSV文件,需要的朋友可以參考下2023-07-07
PyCharm GUI界面開(kāi)發(fā)和exe文件生成的實(shí)現(xiàn)
這篇文章主要介紹了PyCharm GUI界面開(kāi)發(fā)和exe文件生成,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào)
今天小編就為大家分享一篇在linux下實(shí)現(xiàn) python 監(jiān)控usb設(shè)備信號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
python自動(dòng)化之如何利用allure生成測(cè)試報(bào)告
這篇文章主要給大家介紹了關(guān)于python自動(dòng)化之如何利用allure生成測(cè)試報(bào)告的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
python向MySQL數(shù)據(jù)庫(kù)插入數(shù)據(jù)的操作方法
這篇文章主要介紹了python向MySQL數(shù)據(jù)庫(kù)插入數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
淺析Python與Mongodb數(shù)據(jù)庫(kù)之間的操作方法
這篇文章主要介紹了Python與Mongodb數(shù)據(jù)庫(kù)之間的操作,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07

