介紹
psutil能夠輕松實現獲取系統運行的進程和系統利用率。
導入模塊
import psutils
獲取系統性能信息
CPU信息
使用cpu_times()方法獲取CPU的完整信息:
>>> psutil.cpu_times()
獲取單項數據,例如用戶user的CPU時間比:
>>> psutil.cpu_times().user
獲取CPU的個數:
>>> psutil.cpu_count() # 默認logical=True,獲取邏輯個數>>> psutil.cpu_count(logical=False) # 獲取CPU的物理個數
內存信息
獲取物理內存總大小和已使用內存:
>>> mem = psutil.virtual_memory()>>> mem # 顯示所有的參數>>> mem.total # 總內存>>> mem.used # 已使用內存>>> mem.free # 獲取空閑內存數 >>> psutil.swap_memory() # 獲取SWAP分區信息
磁盤信息
獲取磁盤完整信息:
>>> psutil.disk_partitions()
獲取分區的使用情況:
>>> psutil.disk_usage('C:/') # 里面參數為所在磁盤分區
獲取硬盤總的IO個數:
>>> psutil.disk_io_counters()>>> psutil.disk_io_counters(perdisk=True) # 獲取單個分區的IO個數
網絡信息
獲取網絡總的IO信息:
>>> psutil.net_io_counters()>>> psutil.net_io_counters(pernic=True) # 輸出單個網絡接口的IO信息
其他系統信息
返回當前登錄系統的用戶信息:
>>> psutil.users()
獲取開機時間:
>>> psutil.boot_time() # 以Linux時間戳格式返回# 如果想要轉換成自然時間格式:>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
進程管理
進程信息
列出所有進程PID
>>> psutil.pids()
實例化進程對象
>>> p = psutil.Process(716)>>> p.name() # 進程名>>> p.exe() # 進程bin路徑>>> p.cwd() # 進程工作目錄的絕對路徑>>> p.status() # 進程狀態>>> p.create_time() # 進程創建時間>>> p.uids() # 進程uid信息>>> p.gids() # 進程gid信息>>> p.cpu_times() # 進程CPU時間信息>>> p.cpu_affinity() # get進程的親和度>>> p.memory_percent() # 進程內存使用率>>> p.num_threads() # 進程開啟的線程數
popen類的使用
popen類可以獲取用戶啟動的應用程序進程信息。
>>> p = putil.Popen(["/usr/bin/python","-c","print('Hello')"],stdout=subprocess.PIPE)>>> p.name()>>> p.username() # 創建進程的用戶>>> p.communicate()('hello/n',None)>>> p.cpu_times() # 得到進程運行的CPU時間
新聞熱點
疑難解答