python使用Psutil模塊實(shí)現(xiàn)獲取計(jì)算機(jī)相關(guān)信息
psutil 是一個(gè)跨平臺(tái)的庫(kù),用于獲取進(jìn)程和系統(tǒng)運(yùn)行狀態(tài)(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、傳感器)的信息。它主要用于系統(tǒng)監(jiān)視、分析和限制進(jìn)程資源以及管理正在運(yùn)行的進(jìn)程。psutil 支持 Linux、Windows、macOS、FreeBSD、OpenBSD、NetBSD 和 Sun Solaris 等操作系統(tǒng)。
psutil 庫(kù)可以用來獲取以下信息:
- 進(jìn)程信息:包括進(jìn)程ID、進(jìn)程名稱、進(jìn)程狀態(tài)等。
- CPU信息:包括CPU數(shù)量、CPU使用率、每個(gè)CPU的使用率等。
- 內(nèi)存信息:包括總內(nèi)存、已使用內(nèi)存、空閑內(nèi)存等。
- 磁盤信息:包括磁盤使用率、磁盤IO等。
- 網(wǎng)絡(luò)信息:包括網(wǎng)絡(luò)接口、網(wǎng)絡(luò)連接數(shù)等。
- 傳感器信息:包括溫度、濕度等信息。
psutil 庫(kù)可以通過以下方式使用:
- 獲取進(jìn)程信息:可以使用 psutil.Process(pid) 方法獲取指定進(jìn)程的信息,其中 pid 是進(jìn)程ID。
- 獲取系統(tǒng)信息:可以使用 psutil.virtual_memory() 和 psutil.cpu_percent(interval=1) 等方法獲取系統(tǒng)信息。
- 監(jiān)控磁盤信息:可以使用 psutil.disk_usage(‘/’) 方法獲取磁盤使用率信息。
- 監(jiān)控網(wǎng)絡(luò)信息:可以使用 psutil.net_io_counters() 方法獲取網(wǎng)絡(luò)IO信息。
- 管理進(jìn)程:可以使用 psutil.Process(pid).kill() 方法殺死指定進(jìn)程。
總之,psutil庫(kù)是一個(gè)非常實(shí)用的庫(kù),可以用來獲取系統(tǒng)和進(jìn)程的詳細(xì)信息,并對(duì)進(jìn)程進(jìn)行管理。
查看操作系統(tǒng)相關(guān)信息
import psutil from datetime import datetime Users = psutil.users() # 查看當(dāng)前登錄的用戶信息,列表類型。包括:name: 用戶名 terminal: 終端 host: 主機(jī)地址 started: 登錄時(shí)間 pid: 進(jìn)程id BootTime = datetime.fromtimestamp(psutil.boot_time()) # 查看系統(tǒng)的啟動(dòng)時(shí)間 2022-12-12 08:40:05
查看CPU相關(guān)信息
import psutil CpuLogicCoreCount = psutil.cpu_count() # CPU邏輯核心數(shù) '8' CpuPhysicalCoreCount = psutil.cpu_count(logical=False) # CPU物理核心數(shù) '4' CPUPercent = psutil.cpu_percent(interval=1, percpu=True) # CPU使用率,列表顯示,interval表示刷新間隔,列表中的元素代表每個(gè)CPU邏輯核心 [6.1, 1.5, 4.6, 7.7, 10.8, 1.5, 1.5, 1.5] CPUFreq = psutil.cpu_freq() # CPU頻率 scpufreq(current=3408.0, min=0.0, max=3408.0)
查看內(nèi)存相關(guān)信息
import psutil VirtualMemory = psutil.virtual_memory() # 內(nèi)存使用情況 svmem(total=8480059392, available=1381511168, percent=83.7, used=7098548224, free=1381511168) total: 總內(nèi)存 available: 可用內(nèi)存
查看硬盤存儲(chǔ)和IO相關(guān)信息
import psutil DiskPartitions = psutil.disk_partitions(all=True) """ [sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='E:\\', mountpoint='E:\\', fstype='NTFS', opts='rw,fixed')] # 可以看到一共有三個(gè)盤符,fstype表示文件系統(tǒng)格式是NTFS,opts中的rw表示可讀寫 # 里面有一個(gè)參數(shù) all, 默認(rèn)為 False, 如果指定為 True, 那么返回的內(nèi)容還會(huì)包含 /proc 等特殊文件系統(tǒng)的掛載信息,由于我這里是 Windows, 所以兩者沒區(qū)別 """ DiskUsage = psutil.disk_usage('C:') # 磁盤使用情況 sdiskusage(total=84821807104, used=66361847808, free=18459959296, percent=78.2) DiskIOCounters = psutil.disk_io_counters(perdisk=False) # 磁盤IO統(tǒng)計(jì)信息 sdiskio(read_count=4612339, write_count=1834298, read_bytes=116422007808, write_bytes=61427764224, read_time=12831, write_time=4321) """ read_count: 讀次數(shù) write_count: 寫次數(shù) read_bytes: 讀的字節(jié)數(shù) write_bytes: 寫的字節(jié)數(shù) read_time: 讀時(shí)間 write_time: 寫時(shí)間 默認(rèn)返回的是所有磁盤加起來的統(tǒng)計(jì)信息,我們可以指定 perdisk=True,則分別列出每一個(gè)磁盤的統(tǒng)計(jì)信息。 """
查看網(wǎng)絡(luò)相關(guān)信息
import psutil NetIOCounters = psutil.net_io_counters(pernic=False) # 網(wǎng)絡(luò) IO 統(tǒng)計(jì)信息 snetio(bytes_sent=873520263, bytes_recv=311085337, packets_sent=1091582, packets_recv=1259384, errin=0, errout=0, dropin=0, dropout=0) """ # bytes_sent: 發(fā)送的字節(jié)數(shù) # bytes_recv: 接收的字節(jié)數(shù) # packets_sent: 發(fā)送的包數(shù)據(jù)量 # packets_recv: 接收的包數(shù)據(jù)量 # errin: 接收包時(shí), 出錯(cuò)的次數(shù) # errout: 發(fā)送包時(shí), 出錯(cuò)的次數(shù) # dropin: 接收包時(shí), 丟棄的次數(shù) # dropout: 發(fā)送包時(shí), 丟棄的次數(shù) 里面還有一個(gè) pernic 參數(shù), 如果為 True, 則列出所有網(wǎng)卡的信息 """ NetIfAddrs = psutil.net_if_addrs() # 以字典的形式返回網(wǎng)卡的配置信息, 包括 IP 地址、Mac地址、子網(wǎng)掩碼、廣播地址等等 """ {'Loopback Pseudo-Interface 1': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='::1', netmask=None, broadcast=None, ptp=None)], '本地連接': [snicaddr(family=<AddressFamily.AF_LINK: -1>, address='10-E7-C6-2D-AB-2C', netmask=None, broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET: 2>, address='10.36.23.50', netmask='255.255.255.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 23>, address='fe80::d472:4d86:72f6:4da1', netmask=None, broadcast=None, ptp=None)]} """ NetIfStats = psutil.net_if_stats() # 返回網(wǎng)卡的詳細(xì)信息, 包括是否啟動(dòng)、通信類型、傳輸速度、mtu """ {'Loopback Pseudo-Interface 1': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=1073, mtu=1500), '本地連接': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, speed=100, mtu=1500)} """ NetConnections = psutil.net_connections(kind='inet') # 以列表的形式返回每個(gè)網(wǎng)絡(luò)連接的詳細(xì)信息 """ [sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=1, laddr=addr(ip='127.0.0.1', port=57096), raddr=addr(ip='127.0.0.1', port=57095), status='ESTABLISHED', pid=7456), sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=1, laddr=addr(ip='127.0.0.1', port=57230), raddr=addr(ip='127.0.0.1', port=57229), status='ESTABLISHED', pid=20992), sconn(fd=-1, family=<AddressFamily.AF_INET: 2>, type=1, laddr=addr(ip='127.0.0.1', port=57184), raddr=addr(ip='127.0.0.1', port=57251), status='ESTABLISHED', pid=20992)] ... 里面接受一個(gè)參數(shù), 默認(rèn)是 "inet", 當(dāng)然我們也可以指定為其它, 比如 "tcp" """
到此這篇關(guān)于python使用Psutil模塊實(shí)現(xiàn)獲取計(jì)算機(jī)相關(guān)信息的文章就介紹到這了,更多相關(guān)python psutil內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于keras中keras.layers.merge的用法說明
這篇文章主要介紹了關(guān)于keras中keras.layers.merge的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Django REST Swagger實(shí)現(xiàn)指定api參數(shù)
這篇文章主要介紹了Django REST Swagger實(shí)現(xiàn)指定api參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07詳解Appium+Python之生成html測(cè)試報(bào)告
這篇文章主要介紹了詳解Appium+Python之生成html測(cè)試報(bào)告,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01Pytorch實(shí)現(xiàn)張量的創(chuàng)建與使用方法
本文主要介紹了Pytorch實(shí)現(xiàn)張量創(chuàng)建使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08python利用PyQt5設(shè)計(jì)鼠標(biāo)顯示形狀
不知道大家有沒有發(fā)現(xiàn),我們?cè)诰W(wǎng)頁(yè)移動(dòng)鼠標(biāo)時(shí),不同的網(wǎng)頁(yè)會(huì)有不同的鼠標(biāo)移動(dòng)特效,通過移動(dòng)鼠標(biāo),會(huì)形成類似蜘蛛網(wǎng)等等的特效,本文將用PyQt5實(shí)現(xiàn)這一特效,需要的可以參考一下2024-07-07