簡(jiǎn)介:psutil(進(jìn)程和系統(tǒng)實(shí)用程序)是一個(gè)跨平臺(tái)庫(kù),用于檢索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等。
支持的平臺(tái):Linux、Windows、macOS、FreeBSD, OpenBSD, NetBSD、Sun Solaris、AIX等平臺(tái)。
安裝:
1
|
pip install psutil |
用戶系統(tǒng)信息:
1
2
3
4
5
6
|
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)存信息:
1
2
3
4
5
6
7
8
9
10
11
|
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信息:
1
2
3
|
print ( "CPU匯總信息:" , psutil.cpu_times()) print ( "cpu邏輯個(gè)數(shù):" , psutil.cpu_count()) print ( "swap內(nèi)存信息:" , psutil.swap_memory()) |
磁盤信息:
1
2
3
4
|
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ò)信息:
1
|
print ( "獲取網(wǎng)絡(luò)總IO信息:" , psutil.net_io_counters()) |
系統(tǒng)進(jìn)程管理信息:
1
|
print ( "查看系統(tǒng)全部進(jìn)程:" , psutil.pids()) |
單個(gè)進(jìn)程的詳細(xì)信息:
1
2
3
4
5
6
7
8
9
10
|
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ù) |
源碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
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)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/hzblucky1314/article/details/121645575