python psutil 模塊概述及使用示例
psutil 模塊概述
psutil 是一個強大的跨平臺 Python 庫,主要用于系統(tǒng)監(jiān)控、性能分析和進程管理。它提供了類似 ps、top、lsof 等命令的功能,支持獲取 CPU、內存、磁盤、網絡等系統(tǒng)資源的使用情況。
支持的系統(tǒng)
psutil 支持大多數操作系統(tǒng),包括 Linux、Windows、macOS、FreeBSD 和 Solaris 等,可以獲取系統(tǒng)運行信息,如 CPU 使用率、內存狀態(tài)、磁盤讀寫數據、網絡吞吐量等。
安裝 psutil
使用以下命令可以在任何系統(tǒng)中安裝 psutil:
# 使用 pip 安裝 pip install psutil
使用示例
CPU 信息獲取
獲取 CPU 時間的使用情況:
import psutil
# 獲取詳細的 CPU 時間信息
cpu_times = psutil.cpu_times()
print("用戶模式時間:", cpu_times.user)
print("系統(tǒng)模式時間:", cpu_times.system)計算 CPU 使用率(可以指定間隔時間):
cpu_percent = psutil.cpu_percent(interval=1)
print(f"當前 CPU 使用率:{cpu_percent}%")內存信息獲取
可以通過 virtual_memory() 方法來獲取內存的總量、可用量及占用率。
mem = psutil.virtual_memory()
print(f"總內存:{mem.total / (1024 ** 3):.2f} GB")
print(f"已用內存:{mem.used / (1024 ** 3):.2f} GB")
print(f"剩余內存:{mem.available / (1024 ** 3):.2f} GB")
print(f"內存使用率:{mem.percent}%")磁盤信息獲取
disk_partitions() 和 disk_usage() 函數可以查看系統(tǒng)磁盤分區(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"總容量:{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}%")網絡信息獲取
net_io_counters() 方法可獲取系統(tǒng)網絡的總流量,可以加上 pernic=True 參數獲取每個網卡的流量:
net_io = psutil.net_io_counters()
print(f"發(fā)送數據:{net_io.bytes_sent / (1024 ** 2):.2f} MB")
print(f"接收數據:{net_io.bytes_recv / (1024 ** 2):.2f} MB")進程管理功能
psutil 提供了全面的進程管理功能,可以查看系統(tǒng)中所有進程 ID,獲取進程的相關信息,并控制進程的狀態(tài)。
查看系統(tǒng)進程
獲取系統(tǒng)所有進程 ID:
pids = psutil.pids()
print("系統(tǒng)中所有的進程 ID:", pids)獲取進程詳情
以某個特定進程 ID(如 1234)為例,查看進程的詳細信息:
pid = 1234
process = psutil.Process(pid)
print("進程名稱:", process.name())
print("進程狀態(tài):", process.status())
print("進程使用的內存:", process.memory_info().rss / (1024 ** 2), "MB")示例腳本:監(jiān)控系統(tǒng)資源
以下是一個完整的腳本示例,用于獲取系統(tǒng)硬件信息,如 CPU 使用率、內存和磁盤情況:
import psutil
import datetime
# 獲取系統(tǒng)啟動時間
boot_time = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
print("系統(tǒng)啟動時間:", boot_time)
# CPU 使用率
print(f"CPU 使用率:{psutil.cpu_percent(interval=1)}%")
# 內存信息
mem = psutil.virtual_memory()
print(f"內存總量:{mem.total / (1024 ** 3):.2f} GB")
print(f"已用內存:{mem.used / (1024 ** 3):.2f} GB")
print(f"剩余內存:{mem.available / (1024 ** 3):.2f} GB")
# 磁盤使用信息
disk_usage = psutil.disk_usage('/')
print(f"磁盤總量:{disk_usage.total / (1024 ** 3):.2f} GB")
print(f"磁盤已用:{disk_usage.used / (1024 ** 3):.2f} GB")
print(f"磁盤剩余:{disk_usage.free / (1024 ** 3):.2f} GB")以下是 psutil 模塊的總結:
總結
psutil 模塊是一個強大且易于使用的 Python 庫,專為系統(tǒng)監(jiān)控、資源管理和進程控制設計。通過它可以跨平臺地獲取 CPU、內存、磁盤、網絡等系統(tǒng)資源的實時信息,同時還能便捷地管理系統(tǒng)進程。
核心功能
- CPU 管理:獲取 CPU 使用率、核心數、時間等信息。
- 內存管理:查看系統(tǒng)內存的總量、可用量及使用情況。
- 磁盤管理:查看磁盤分區(qū)、使用率及 I/O 情況。
- 網絡管理:獲取網絡的發(fā)送、接收數據總量和連接信息。
- 進程管理:支持列出系統(tǒng)進程,獲取進程狀態(tài)、資源使用情況等。
使用場景
psutil 廣泛應用于性能監(jiān)控、系統(tǒng)日志記錄、數據分析工具、自動化運維等場景。它不僅幫助用戶快速搭建監(jiān)控腳本,還能用于調試和系統(tǒng)診斷,是開發(fā)者和運維人員的重要工具。
主要優(yōu)點
- 跨平臺支持,兼容主流操作系統(tǒng)。
- API 豐富,支持幾乎所有系統(tǒng)資源的獲取。
- 簡單易用,函數調用直觀,文檔完善。
到此這篇關于python psutil 模塊概述的文章就介紹到這了,更多相關python psutil 模塊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python學習筆記整理3之輸入輸出、python eval函數
這篇文章主要介紹了Python學習筆記整理3之輸入輸出、python eval函數的相關資料,需要的朋友可以參考下2015-12-12
GitHub?AI編程工具copilot在Pycharm的應用
最近聽說github出了一種最新的插件叫做copilot,這篇文章主要給大家介紹了關于GitHub?AI編程工具copilot在Pycharm的應用,目前感覺確實不錯,建議大家也去使用,需要的朋友可以參考下2022-04-04

