Python中psutil模塊使用匯總
簡介:psutil(進(jìn)程和系統(tǒng)實(shí)用程序)是一個(gè)跨平臺庫,用于檢索Python中運(yùn)行進(jìn)程和系統(tǒng)利用率(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、傳感器)的信息。它主要用于系統(tǒng)監(jiān)視、分析和限制進(jìn)程資源以及管理正在運(yùn)行的進(jìn)程。它實(shí)現(xiàn)了經(jīng)典UNIX命令行工具提供的許多功能,如ps、top、iotop、lsof、netstat、ifconfig、free等。
支持的平臺:Linux、Windows、macOS、FreeBSD, OpenBSD, NetBSD、Sun Solaris、AIX等平臺。
安裝:
pip install psutil
用戶系統(tǒng)信息:
import psutil
import datetime
print("當(dāng)前用戶:", psutil.users())
print("當(dāng)前系統(tǒng)時(shí)間:", psutil.boot_time()) # 以時(shí)間戳格式返回)
print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S")) # 轉(zhuǎn)換成自然時(shí)間格式
內(nèi)存信息:
mem = psutil.virtual_memory()
print("系統(tǒng)內(nèi)存全部信息:", mem)
mem_total = float(mem.total)
mem_used = float(mem.used)
mem_free = float(mem.free)
mem_percent = float(mem.percent)
print(f"系統(tǒng)總計(jì)內(nèi)存:{mem_total}")
print(f"系統(tǒng)已經(jīng)使用內(nèi)存:{mem_used}")
print(f"系統(tǒng)空閑內(nèi)存:{mem_free}")
print(f"系統(tǒng)內(nèi)存使用率:{mem_percent}")
CPU信息:
print("CPU匯總信息:", psutil.cpu_times())
print("cpu邏輯個(gè)數(shù):", psutil.cpu_count())
print("swap內(nèi)存信息:", psutil.swap_memory())
磁盤信息:
print("獲取磁盤的完整信息:", psutil.disk_partitions())
print("獲取分區(qū)表的參數(shù):", psutil.disk_usage('/')) # 獲取/分區(qū)的狀態(tài)
print("獲取硬盤IO總個(gè)數(shù):", psutil.disk_io_counters())
print("獲取單個(gè)分區(qū)IO個(gè)數(shù):", psutil.disk_io_counters(perdisk=True)) # perdisk=True參數(shù)獲取單個(gè)分區(qū)IO個(gè)數(shù)
網(wǎng)絡(luò)信息:
print("獲取網(wǎng)絡(luò)總IO信息:", psutil.net_io_counters())
系統(tǒng)進(jìn)程管理信息:
print("查看系統(tǒng)全部進(jìn)程:", psutil.pids())
單個(gè)進(jìn)程的詳細(xì)信息:
pid_info = psutil.Process(1200) print(pid_info.name()) # 進(jìn)程名 print(pid_info.exe()) # 進(jìn)程的bin路徑 print(pid_info.status()) # 進(jìn)程狀態(tài) print(pid_info.create_time()) # 進(jìn)程創(chuàng)建時(shí)間 print(pid_info.cpu_times()) # 進(jìn)程的cpu時(shí)間信息,包括user,system兩個(gè)cpu信息 print(pid_info.memory_percent()) # 進(jìn)程內(nèi)存利用率 print(pid_info.memory_info()) # 進(jìn)程內(nèi)存rss,vms信息 print(pid_info.io_counters()) # 進(jìn)程的IO信息,包括讀寫IO數(shù)字及參數(shù) print(pid_info.num_threads()) # 進(jìn)程開啟的線程數(shù)
源碼:
import psutil
import datetime
# 用戶,系統(tǒng)相關(guān):
print("當(dāng)前用戶:", psutil.users())
print("當(dāng)前系統(tǒng)時(shí)間:", psutil.boot_time()) # 以linux時(shí)間格式返回)
print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S")) # 轉(zhuǎn)換成自然時(shí)間格式
# 內(nèi)存相關(guān):
mem = psutil.virtual_memory()
print("系統(tǒng)內(nèi)存全部信息:", mem)
mem_total = float(mem.total)
mem_used = float(mem.used)
mem_free = float(mem.free)
mem_percent = float(mem.percent)
print(f"系統(tǒng)總計(jì)內(nèi)存:{mem_total}")
print(f"系統(tǒng)已經(jīng)使用內(nèi)存:{mem_used}")
print(f"系統(tǒng)空閑內(nèi)存:{mem_free}")
print(f"系統(tǒng)內(nèi)存使用率:{mem_percent}")
# CPU相關(guān):
print("CPU匯總信息:", psutil.cpu_times())
print("cpu邏輯個(gè)數(shù):", psutil.cpu_count())
print("swap內(nèi)存信息:", psutil.swap_memory())
# 磁盤相關(guān):
print("獲取磁盤的完整信息:", psutil.disk_partitions())
print("獲取分區(qū)表的參數(shù):", psutil.disk_usage('/')) # 獲取/分區(qū)的狀態(tài)
print("獲取硬盤IO總個(gè)數(shù):", psutil.disk_io_counters())
print("獲取單個(gè)分區(qū)IO個(gè)數(shù):", psutil.disk_io_counters(perdisk=True)) # perdisk=True參數(shù)獲取單個(gè)分區(qū)IO個(gè)數(shù)
# 網(wǎng)絡(luò)相關(guān):
print("獲取網(wǎng)絡(luò)總IO信息:", psutil.net_io_counters())
# 系統(tǒng)進(jìn)程管理:
print("查看系統(tǒng)全部進(jìn)程:", psutil.pids())
# 單個(gè)進(jìn)程的詳細(xì)信息:
pid_info = psutil.Process(1200)
print(pid_info.name()) # 進(jìn)程名
print(pid_info.exe()) # 進(jìn)程的bin路徑
print(pid_info.status()) # 進(jìn)程狀態(tài)
print(pid_info.create_time()) # 進(jìn)程創(chuàng)建時(shí)間
print(pid_info.cpu_times()) # 進(jìn)程的cpu時(shí)間信息,包括user,system兩個(gè)cpu信息
print(pid_info.memory_percent()) # 進(jìn)程內(nèi)存利用率
print(pid_info.memory_info()) # 進(jìn)程內(nèi)存rss,vms信息
print(pid_info.io_counters()) # 進(jìn)程的IO信息,包括讀寫IO數(shù)字及參數(shù)
print(pid_info.num_threads()) # 進(jìn)程開啟的線程數(shù)
運(yùn)行結(jié)果:

到此這篇關(guān)于Python中psutil模塊使用的文章就介紹到這了,更多相關(guān)Python psutil模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3 tkinter實(shí)現(xiàn)添加圖片和文本
這篇文章主要為大家詳細(xì)介紹了python3 tkinter實(shí)現(xiàn)添加圖片和文本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
利用Python pandas對Excel進(jìn)行合并的方法示例
這篇文章主要給大家介紹了關(guān)于利用Python pandas對Excel進(jìn)行合并的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
詳解pycharm連接遠(yuǎn)程linux服務(wù)器的虛擬環(huán)境的方法
這篇文章主要介紹了pycharm連接遠(yuǎn)程linux服務(wù)器的虛擬環(huán)境的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Python之tkinter進(jìn)度條Progressbar用法解讀
這篇文章主要介紹了Python之tkinter進(jìn)度條Progressbar用法解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Python tkinter庫實(shí)現(xiàn)登錄注冊基本功能
Python自帶了tkinter模塊,實(shí)質(zhì)上是一種流行的面向?qū)ο蟮腉UI工具包 TK 的Python編程接口,提供了快速便利地創(chuàng)建GUI應(yīng)用程序的方法,下面這篇文章主要給大家介紹了關(guān)于tkinter庫制作一個(gè)簡單的登錄注冊小程序,需要的朋友可以參考下2022-12-12

