標籤:psutil
psutil(進程和系統公用程式)是一個跨平台的庫,用於 在Python中檢索有關
運行進程和
系統利用率(CPU,記憶體,磁碟,網路,感應器)的資訊。它主要用於
系統監視,
分析和限制流程資源以及
運行流程的管理。它實現了UNIX命令列工具提供的許多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。psutil目前支援以下平台:
Linux的
視窗
OSX,
FreeBSD,OpenBSD,NetBSD
Sun Solaris
AIX
... 32位和64位體繫結構,Python版本從2.6到3.6。
1、擷取系統效能資訊
#! /env python3#coding=utf-8import psutil''''擷取cpu資訊'''a = psutil.cpu_times() #使用cpu_times方法擷取cpu完成資訊,需要顯示所有的cpu資訊b = psutil.cpu_times().user #擷取單項cpu的資料資訊,如使用者user的cpu時間比c = psutil.cpu_count() #擷取cpu的邏輯個數print (a)print (b)print (c)'''記憶體資訊'''mem = psutil.virtual_memory() #使用pstuil.virtual_memory方法擷取記憶體的完整資訊mem_total = psutil.virtual_memory().total #擷取記憶體總數mem_free = psutil.virtual_memory().free #擷取記憶體剩餘print (mem)print (mem_total)print (mem_free)'''磁碟資訊'''disk_partitions = psutil.disk_partitions() #擷取磁碟完整資訊disk_usage = psutil.disk_usage('/') #擷取整個硬碟的資訊disk_usage_c = psutil.disk_usage('C://') #擷取分區c的硬碟資訊disk_io = psutil.disk_io_counters() #擷取硬碟的總io個數、讀寫資訊disk_io_perdisk = psutil.disk_io_counters(perdisk=True) #‘perdisk=True’參數擷取單個分區IO個數、讀寫資訊print (disk_partitions)print (disk_usage)print (disk_usage_c)print ('硬碟總io=' +str(disk_io))print ('單個分區資訊='+str(disk_io_perdisk))'''網路資訊'''net_io = psutil.net_io_counters() #擷取網路總IO資訊、預設pernic=Falsenet_io_pernic = psutil.net_io_counters(pernic=True) #擷取每個網卡的io資訊net_connections = psutil.net_connections()#擷取所有的串連資訊print (net_io)print (net_io_pernic)print (net_connections)'''其他系統資訊'''users = psutil.users() #當前登入系統的使用者資訊import datetimeboot_time = psutil.boot_time() #擷取開機時間,為linux格式boot_time_nu = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d%H:%M:%S') #轉換為自然格式print (users)print (boot_time)print (boot_time_nu)
2、系統進程管理
#! /env python3#coding=utf-8import psutil'''進程資訊'''pids = psutil.pids() #列出所有進程idpids_4644= psutil.Process(4644) #列出指定pid為4644的進程資訊print (pids)print (pids_4644.name()) #輸出進程名print (pids_4644.exe()) #輸出進程路徑print (pids_4644.cwd()) #輸出絕對路徑print (pids_4644.status()) #輸出進程狀態print (pids_4644.create_time()) #輸出建立時間、時間戳記格式#print (pids_4644.gid()) #輸出進程gid資訊print (pids_4644.cpu_times) #輸出cpu時間資訊,包括user,system兩個cpu時間print (pids_4644.cpu_affinity()) #get進程cpu親和度print (pids_4644.memory_percent()) #進程利用率print (pids_4644.memory_info) #進程記憶體資訊print (pids_4644.io_counters()) #進程io資訊,包括讀寫IO數及位元組數print (pids_4644.connections()) #返回開啟進程sockert的namedutples列表、包括fs,family等資訊print (pids_4644.num_threads()) #進程開啟的線程數'''popen類的使用'''import psutilfrom subprocess import PIPE #通過psutil的popen方法啟動的應用程式,可以跟蹤該程式的所有相關資訊
python學習-psuti模組