1. 程式人生 > >python - psutil 系統資訊模組

python - psutil 系統資訊模組

# .psutil是一個跨平臺庫能夠輕鬆實現獲取系統執行的程序和系統利用率(包括CPU、記憶體、磁碟、網路等)資訊。
# 它主要用來做系統監控,效能分析,程序管理。
# 它實現了同等命令列工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、
# iostat、iotop、uptime、pidof、tty、taskset、pmap等。
# 目前支援32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等作業系統.


import psutil

# CPU
# print(psutil.cpu_times())
# 獲取cpu邏輯和物理個數,預設logical值為True 。 #CPU邏輯個數 # print(psutil.cpu_count()) #CPU物理個數 # print(psutil.cpu_count(logical=False)) # 獲取cpu的使用率: # print(psutil.cpu_percent()) # print(psutil.cpu_percent(1)) # 記憶體資訊 # print(psutil.virtual_memory()) # print(list(psutil.virtual_memory())) # print(psutil.virtual_memory().total)
# print(psutil.virtual_memory().available) # print(psutil.virtual_memory().percent) # print(psutil.virtual_memory().used) # print(psutil.virtual_memory().free) # 磁碟資訊 # 磁碟資訊主要有兩部分,一個是磁碟的利用率,一個是io,他們分別可以通過disk_usage和disk_io_counters方法獲取。 # print(psutil.disk_partitions()) # print(psutil.disk_usage('C:\\'))
# 預設disk_io_counters方法獲取的是硬碟總的io數和讀寫資訊,如果需要獲取單個分割槽的io和讀寫資訊加上"perdisk=True"引數。 # print(psutil.disk_io_counters()) # print(psutil.disk_io_counters(perdisk=True)) # 網路資訊: # 網路io和磁碟io使用方法差不多,主要使用net_io_counters方法,如果需要獲取單個網絡卡的io資訊,加上pernic=True引數。 # 獲取網路總的io情況 # print(psutil.net_io_counters()) # 獲取網絡卡的io情況 # print(psutil.net_io_counters(pernic=True)) # for i,j in psutil.net_io_counters(pernic=True).items(): # if i == '本地連線': # print(j) # 其他系統資訊: # 獲取開機時間 # print(psutil.boot_time()) # import datetime # print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S")) # 檢視系統全部程序號 # print(psutil.pids()) # p = psutil.Process(6680) # p.name() #程序名 # p.exe() #程序的bin路徑 # p.cwd() #程序的工作目錄絕對路徑 # p.status() #程序狀態 # p.create_time() #程序建立時間 # # p.uids() #程序uid資訊 # # p.gids() #程序的gid資訊 # p.cpu_times() #程序的cpu時間資訊,包括user,system兩個cpu資訊 # p.cpu_affinity() #get程序cpu親和度,如果要設定cpu親和度,將cpu號作為參考就好 # p.memory_percent() #程序記憶體利用率 # p.memory_info() #程序記憶體rss,vms資訊 # p.io_counters() #程序的IO資訊,包括讀寫IO數字及引數 # # p.connectios() #返回程序列表 # p.num_threads() #程序開啟的執行緒數 # 聽過psutil的Popen方法啟動應用程式,可以跟蹤程式的相關資訊 # from subprocess import PIPE # p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE) # p.name() # p.username() # 系統使用者 # users_count = len(psutil.users())

 https://psutil.readthedocs.io/en/latest/#windows-services