目錄
今天給大家介紹乙個可以獲取當前系統資訊的庫——psutil
利用psutil庫可以獲取系統的一些資訊,如cpu,記憶體等使用率,從而可以檢視當前系統的使用情況,實時採集這些資訊可以達到實時監控系統的目的。
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 partdoxnbhlql:
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行mountp程式設計客棧oint='/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 udoxnbhlqlsers:
print(i)
可以獲取到本機開機時間,以及當前使用的使用者
python監控模組psutil基本使用
1.安裝psutil pip install psutil 2.基本使用 監控工具 import psutil import datetime def getmem info 記憶體資訊 mem psutil.virtual memory print 總記憶體 mem.total 1024 1024...
python工作學習(psutil庫使用)
pids psutil.process iter 迭代時由於許可權問題可能出現無法獲取到程序資訊的情況,導致迭代失敗,需要通過管理員許可權執行py指令碼才可以順利獲取。如下 usr bin python encoding utf 8 import os import sys import strin...
python中使用psutil檢視記憶體占用
有的時候需要對python程式記憶體占用進行監控,這個時候可以用到psutil庫,anaconda中是自帶的,如果import出錯,可以用pip install psutil 安裝在python中 或conda install psutil 安裝在anaconda中 常用的 import psuti...