您好,登錄后才能下訂單哦!
這篇文章主要介紹Python如何使用psutil庫對系統數據進行采集監控,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
psutil的安裝很簡單
pip install psutil
psutil庫可以獲取哪些系統信息?
psutil有哪些作用
1.內存使用情況
2.磁盤使用情況
3.cpu使用率
4.網絡接口發送接收流量
5.獲取當前網速
6.系統當前進程
...
下面通過具體代碼案例進行演示
import psutil #內存 mem = psutil.virtual_memory() # 系統總計內存 zj = float(mem.total) / 1024 / 1024 / 1024 # 系統已經使用內存 ysy = float(mem.used) / 1024 / 1024 / 1024 # 系統空閑內存 kx = float(mem.free) / 1024 / 1024 / 1024 print('系統總計內存:%d.4GB' % zj) print('系統已經使用內存:%d.4GB' % ysy) print('系統空閑內存:%d.4GB' % kx)
獲取當前系統總內存,已使用內存,以及空閑內存
這里獲取的內存是的單位是字節,所以需要通過除以1024轉為G,下面同樣如此就不再重復解釋。
#顯示cpu所有邏輯信息 print(psutil.cpu_times(percpu=True)) # 查看cpu邏輯個數的信息 print(u"邏輯CPU個數: %s" % psutil.cpu_count()) # 查看cpu物理個數的信息 print(u"物理CPU個數: %s" % psutil.cpu_count(logical=False)) #CPU的使用率 cpu = (str(psutil.cpu_percent(1))) + '%' print(u"cup使用率: %s" % cpu)
獲取cpu信息,以及本機cpu個數(包括邏輯cpu數和物理cpu數),當前的cpu使用率(每隔1秒獲取一次,獲取查看實時cpu使用率情況)
系統磁盤使用情況
part = psutil.disk_partitions() for i in part: print(i) dk = psutil.disk_usage('/') print(dk) #總磁盤 total = dk.total / 1024 / 1024 / 1024 used = dk.used / 1024 / 1024 / 1024 free = dk.free / 1024 / 1024 / 1024 print('系統總計磁盤:%d.3GB' % total) print('系統已經使用磁盤:%d.3GB' % used) print('系統空閑磁盤:%d.3GB' % free) print(u"磁盤使用率: %s%%" % dk.percent) # 獲取磁盤總的io個數,讀寫信息 print(psutil.disk_io_counters())
前面幾行是當前系統可以訪問的磁盤信息
其中第1行mountpoint='/',表示當前本機默認磁盤
其中第6行mountpoint='/Volumes/Extreme SSD',表示外接固態移動硬盤
這里以本機磁盤mountpoint='/'為例,查看磁盤的使用情況(總容量,已使用,空閑容量,使用率)
最后一行的每一個字段的含義如下:
""" read_count 讀IO數 write_count 寫IO數 read_bytes 讀IO字節數 write_bytes 寫IO字節數 read_time 磁盤讀時間 write_time 磁盤寫時間 """
獲取系統網卡信息
# 獲取網絡總IO信息 print(psutil.net_io_counters()) # 發送數據包 print("發送數據字節:", psutil.net_io_counters().bytes_sent,"bytes") #接收數據包 print("接收數據字節:",psutil.net_io_counters().bytes_recv,"bytes") # 輸出網絡每個接口信息 net_counter = psutil.net_io_counters(pernic=True) for i in net_counter: print("網卡:"+i+" ,網卡信息:",net_counter[i])
可以獲取到當前本機中存在哪些網卡,以及發送和接收的流量是多少
通過在終端中查看本機的網卡是否一致
mac和linux系統命令:ifconfig
window系統命令:ipconfig
部分截圖如下:
可以看到程序獲取的網卡數據和本機終端獲取是一致的
通過上面的程序獲取網卡發送和接收的流量來獲取當前網速
s1 = psutil.net_io_counters(pernic=True)['en0'] time.sleep(1) s2 = psutil.net_io_counters(pernic=True)['en0'] result = s2.bytes_recv - s1.bytes_recv print(str('%d' % (result / 1024)) + 'kb/s')
代碼中的['en0']表示獲取en0網卡的數據,因為辰哥本機的網卡是en0
最后可以看到獲取當前網速情況
每個1秒執行該代碼可以實現實時獲取網速
# 系統開機時間 # 轉換成自然時間格式 print(datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S")) #獲取當前系統用戶登錄信息 users = psutil.users() for i in users: print(i)
可以獲取到本機開機時間,以及當前使用的用戶
以上是“Python如何使用psutil庫對系統數據進行采集監控”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。