python psutil 模塊概述及使用示例
psutil 模塊概述
psutil
是一個(gè)強(qiáng)大的跨平臺(tái) Python 庫(kù),主要用于系統(tǒng)監(jiān)控、性能分析和進(jìn)程管理。它提供了類似 ps
、top
、lsof
等命令的功能,支持獲取 CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等系統(tǒng)資源的使用情況。
支持的系統(tǒng)
psutil
支持大多數(shù)操作系統(tǒng),包括 Linux、Windows、macOS、FreeBSD 和 Solaris 等,可以獲取系統(tǒng)運(yùn)行信息,如 CPU 使用率、內(nèi)存狀態(tài)、磁盤(pán)讀寫(xiě)數(shù)據(jù)、網(wǎng)絡(luò)吞吐量等。
安裝 psutil
使用以下命令可以在任何系統(tǒng)中安裝 psutil
:
# 使用 pip 安裝 pip install psutil
使用示例
CPU 信息獲取
獲取 CPU 時(shí)間的使用情況:
import psutil # 獲取詳細(xì)的 CPU 時(shí)間信息 cpu_times = psutil.cpu_times() print("用戶模式時(shí)間:", cpu_times.user) print("系統(tǒng)模式時(shí)間:", cpu_times.system)
計(jì)算 CPU 使用率(可以指定間隔時(shí)間):
cpu_percent = psutil.cpu_percent(interval=1) print(f"當(dāng)前 CPU 使用率:{cpu_percent}%")
內(nèi)存信息獲取
可以通過(guò) virtual_memory()
方法來(lái)獲取內(nèi)存的總量、可用量及占用率。
mem = psutil.virtual_memory() print(f"總內(nèi)存:{mem.total / (1024 ** 3):.2f} GB") print(f"已用內(nèi)存:{mem.used / (1024 ** 3):.2f} GB") print(f"剩余內(nèi)存:{mem.available / (1024 ** 3):.2f} GB") print(f"內(nèi)存使用率:{mem.percent}%")
磁盤(pán)信息獲取
disk_partitions()
和 disk_usage()
函數(shù)可以查看系統(tǒng)磁盤(pán)分區(qū)信息及分區(qū)使用情況:
# 獲取系統(tǒng)分區(qū)信息 partitions = psutil.disk_partitions() for partition in partitions: usage = psutil.disk_usage(partition.mountpoint) print(f"分區(qū):{partition.device}") print(f"總?cè)萘浚簕usage.total / (1024 ** 3):.2f} GB") print(f"已用容量:{usage.used / (1024 ** 3):.2f} GB") print(f"剩余容量:{usage.free / (1024 ** 3):.2f} GB") print(f"使用率:{usage.percent}%")
網(wǎng)絡(luò)信息獲取
net_io_counters()
方法可獲取系統(tǒng)網(wǎng)絡(luò)的總流量,可以加上 pernic=True
參數(shù)獲取每個(gè)網(wǎng)卡的流量:
net_io = psutil.net_io_counters() print(f"發(fā)送數(shù)據(jù):{net_io.bytes_sent / (1024 ** 2):.2f} MB") print(f"接收數(shù)據(jù):{net_io.bytes_recv / (1024 ** 2):.2f} MB")
進(jìn)程管理功能
psutil
提供了全面的進(jìn)程管理功能,可以查看系統(tǒng)中所有進(jìn)程 ID,獲取進(jìn)程的相關(guān)信息,并控制進(jìn)程的狀態(tài)。
查看系統(tǒng)進(jìn)程
獲取系統(tǒng)所有進(jìn)程 ID:
pids = psutil.pids() print("系統(tǒng)中所有的進(jìn)程 ID:", pids)
獲取進(jìn)程詳情
以某個(gè)特定進(jìn)程 ID(如 1234)為例,查看進(jìn)程的詳細(xì)信息:
pid = 1234 process = psutil.Process(pid) print("進(jìn)程名稱:", process.name()) print("進(jìn)程狀態(tài):", process.status()) print("進(jìn)程使用的內(nèi)存:", process.memory_info().rss / (1024 ** 2), "MB")
示例腳本:監(jiān)控系統(tǒng)資源
以下是一個(gè)完整的腳本示例,用于獲取系統(tǒng)硬件信息,如 CPU 使用率、內(nèi)存和磁盤(pán)情況:
import psutil import datetime # 獲取系統(tǒng)啟動(dòng)時(shí)間 boot_time = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S") print("系統(tǒng)啟動(dòng)時(shí)間:", boot_time) # CPU 使用率 print(f"CPU 使用率:{psutil.cpu_percent(interval=1)}%") # 內(nèi)存信息 mem = psutil.virtual_memory() print(f"內(nèi)存總量:{mem.total / (1024 ** 3):.2f} GB") print(f"已用內(nèi)存:{mem.used / (1024 ** 3):.2f} GB") print(f"剩余內(nèi)存:{mem.available / (1024 ** 3):.2f} GB") # 磁盤(pán)使用信息 disk_usage = psutil.disk_usage('/') print(f"磁盤(pán)總量:{disk_usage.total / (1024 ** 3):.2f} GB") print(f"磁盤(pán)已用:{disk_usage.used / (1024 ** 3):.2f} GB") print(f"磁盤(pán)剩余:{disk_usage.free / (1024 ** 3):.2f} GB")
以下是 psutil
模塊的總結(jié):
總結(jié)
psutil
模塊是一個(gè)強(qiáng)大且易于使用的 Python 庫(kù),專為系統(tǒng)監(jiān)控、資源管理和進(jìn)程控制設(shè)計(jì)。通過(guò)它可以跨平臺(tái)地獲取 CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等系統(tǒng)資源的實(shí)時(shí)信息,同時(shí)還能便捷地管理系統(tǒng)進(jìn)程。
核心功能
- CPU 管理:獲取 CPU 使用率、核心數(shù)、時(shí)間等信息。
- 內(nèi)存管理:查看系統(tǒng)內(nèi)存的總量、可用量及使用情況。
- 磁盤(pán)管理:查看磁盤(pán)分區(qū)、使用率及 I/O 情況。
- 網(wǎng)絡(luò)管理:獲取網(wǎng)絡(luò)的發(fā)送、接收數(shù)據(jù)總量和連接信息。
- 進(jìn)程管理:支持列出系統(tǒng)進(jìn)程,獲取進(jìn)程狀態(tài)、資源使用情況等。
使用場(chǎng)景
psutil
廣泛應(yīng)用于性能監(jiān)控、系統(tǒng)日志記錄、數(shù)據(jù)分析工具、自動(dòng)化運(yùn)維等場(chǎng)景。它不僅幫助用戶快速搭建監(jiān)控腳本,還能用于調(diào)試和系統(tǒng)診斷,是開(kāi)發(fā)者和運(yùn)維人員的重要工具。
主要優(yōu)點(diǎn)
- 跨平臺(tái)支持,兼容主流操作系統(tǒng)。
- API 豐富,支持幾乎所有系統(tǒng)資源的獲取。
- 簡(jiǎn)單易用,函數(shù)調(diào)用直觀,文檔完善。
到此這篇關(guān)于python psutil 模塊概述的文章就介紹到這了,更多相關(guān)python psutil 模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python學(xué)習(xí)筆記整理3之輸入輸出、python eval函數(shù)
這篇文章主要介紹了Python學(xué)習(xí)筆記整理3之輸入輸出、python eval函數(shù)的相關(guān)資料,需要的朋友可以參考下2015-12-12python 使用plt畫(huà)圖,去除圖片四周的白邊方法
今天小編就為大家分享一篇python 使用plt畫(huà)圖,去除圖片四周的白邊方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07詳解Python+OpenCV實(shí)現(xiàn)圖像二值化
圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果的過(guò)程。本文將通過(guò)Python+OpenCV實(shí)現(xiàn)這一過(guò)程,感興趣的可以學(xué)習(xí)一下2022-05-05GitHub?AI編程工具copilot在Pycharm的應(yīng)用
最近聽(tīng)說(shuō)github出了一種最新的插件叫做copilot,這篇文章主要給大家介紹了關(guān)于GitHub?AI編程工具copilot在Pycharm的應(yīng)用,目前感覺(jué)確實(shí)不錯(cuò),建議大家也去使用,需要的朋友可以參考下2022-04-04Python本地搭建靜態(tài)Web服務(wù)器的實(shí)現(xiàn)
本文主要介紹了Python本地搭建靜態(tài)Web服務(wù)器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02python中內(nèi)置庫(kù)os與sys模塊的詳細(xì)介紹
這篇文章主要介紹了python中內(nèi)置庫(kù)os與sys模塊的詳細(xì)介紹,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08