日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python库的使用手册_​Python 常用库之 psutil 使用指南

發布時間:2024/4/19 python 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python库的使用手册_​Python 常用库之 psutil 使用指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

劇照:約定的夢幻島(第二季)

作者:古明地盆

來源:www.cnblogs.com/traditional/p/12580638.html

楔子

Python 有一個第三方模塊:psutil,專門用來獲取操作系統以及硬件相關的信息,比如:CPU、磁盤、網絡、內存等等。

首先我們要安裝,直接 pip install psutil 即可,安裝之后來看看它的用法。

CPU 相關

獲取 CPU 的邏輯數量

importpsutil

print(psutil.cpu_count())#?12

獲取 CPU 的物理核心數量

importpsutil

print(psutil.cpu_count(logical=False))#?6

結果為 6,說明是 6 核超線程;如果 CPU 的物理核心數 和 邏輯數相等,也為 12,則說明是 12 核非超線程。

統計 CPU 的用戶/系統/空閑時間

importpsutil

print(psutil.cpu_times())

#?scputimes(user=65531.796875,?system=42440.76562500023,?idle=1783904.3593749998,?interrupt=5676.375,?dpc=1846.609375)

#?psutil.cpu_times_percent()?功能與之類似,?只不過返回的比例

返回的是一個 namedtuple,后面凡是結構長的和這里類似的,都是 namedtuple。

查看 CPU 的使用率

importpsutil

forxinrange(3):

# interval:表示每隔0.5s刷新一次

# percpu:表示查看所有的cpu使用率

print(psutil.cpu_percent(interval=0.5,?percpu=True))

"""

[6.1,?6.2,?9.4,?3.1,?0.0,?0.0,?0.0,?6.2,?3.1,?3.1,?3.1,?0.0]

[0.0,?0.0,?6.1,?0.0,?6.1,?3.0,?0.0,?3.0,?3.0,?3.0,?0.0,?9.1]

[0.0,?0.0,?6.2,?3.1,?3.1,?0.0,?3.1,?3.1,?3.1,?3.1,?0.0,?0.0]

"""

#?我這里cpu的邏輯數量是12,?所以每個列表里面有12個元素

查看 CPU 的統計信息,包括上下文切換、中斷、軟中斷,以及系統調用次數等等

importpsutil

print(psutil.cpu_stats())

#?scpustats(ctx_switches=2912990332,?interrupts=4290503758,?soft_interrupts=0,?syscalls=2698751096)

查看 CPU 的頻率

import?psutil

print(psutil.cpu_freq())#?scpufreq(current=2208.0,?min=0.0,?max=2208.0)

內存相關

查看內存使用情況

importpsutil

print(psutil.virtual_memory())

#?svmem(total=17029259264,?available=8437215232,?percent=50.5,?used=8592044032,?free=8437215232)

total: 總內存

available: 可用內存

percent: 內存使用率

used: 已使用的內存

查看交換內存信息

importpsutil

print(psutil.swap_memory())

#?sswap(total=19579396096,?used=15708250112,?free=3871145984,?percent=80.2,?sin=0,?sout=0)

關于物理內存和交換內存之間的關系。

物理內存:就是實際的內存條提供的臨時數據存儲空間,在 Windows 上右鍵點擊計算機,再點擊屬性時,上面顯示的安裝內存(RAM)就是電腦的物理內存。這些內存是實際存在的,在你不給機器增加內存條的時候是不會改變的。

交換內存:交換內存是專門用來臨時存儲數據的,通常在頁面調度和交換進程數據時使用。相當于在進行內存整理的時候,會先把部分數據放在硬盤的某個地方,類似我們整理衣柜,衣服一多直接整理會很麻煩,因此會先把部分衣服放在其他地方,等衣柜里的衣服整理完了再把放在其它地方的衣服拿回來。這個其他地方放在計算機中則代表硬盤的某個地方,也就是我們所說的交換區。通常當使用交換內存時,是因為物理內存不足,正所謂衣柜,如果足夠大的話就沒必要拿出部分衣服放在其它地方, 直接在衣柜里就能解決了。

虛擬內存:首先,如果想要操作文件,可執行程序等等,那么首先要把它們從磁盤上讀取到內存中,因此 CPU 除了自己的那一部分小小的空間外,要想操作數據,只能操作內存里的數據。但是當內存不夠了,那么便會在硬盤上開辟一份虛擬內存,將物理內存里的部分數據放在虛擬內存當中。硬盤的空間很大,即使普通電腦安裝的固態硬盤也有一百個 G,因此可以拿出一部分充當虛擬內存。不過虛擬內存雖說是內存,但畢竟在硬盤上,速度絕對和 CPU 直接從物理內存里讀取數據的速度相差甚遠。這也是為什么那些大型網站將經常被訪問的一些數據放在 Redis 緩存里,而不是放在硬盤或者數據庫上。

磁盤相關

查看磁盤分區、磁盤使用率和磁盤 IO 信息

frompprintimportpprint

importpsutil

pprint(psutil.disk_partitions())

"""

[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')]

"""

#?可以看到一共有三個盤符,fstype表示文件系統格式是NTFS,opts中的rw表示可讀寫

#?里面有一個參數?all,?默認為?False,?如果指定為?True,?那么返回的內容還會包含?/proc?等特殊文件系統的掛載信息

#?由于我這里是?Windows,?所以兩者沒區別

查看某個磁盤使用情況

importpsutil

print(psutil.disk_usage("C:\\"))

#?sdiskusage(total=267117391872,?used=88213196800,?free=178904195072,?percent=33.0)

查看磁盤 IO 統計信息

frompprintimportpprint

importpsutil

pprint(psutil.disk_io_counters())

#?sdiskio(read_count=1270037,?write_count=2146886,?read_bytes=34637616128,?write_bytes=53505994240,?read_time=551,?write_time=1258)

read_count: 讀次數

write_count: 寫次數

read_bytes: 讀的字節數

write_bytes: 寫的字節數

read_time: 讀時間

write_time: 寫時間

默認返回的是所有磁盤加起來的統計信息,我們可以指定 perdisk=True,則分別列出每一個磁盤的統計信息。

frompprintimportpprint

importpsutil

pprint(psutil.disk_io_counters(perdisk=True))

"""

{'PhysicalDrive0':?sdiskio(read_count=1262459,?write_count=2149207,?read_bytes=34598280704,?write_bytes=53708976128,?read_time=532,?write_time=1261),

'PhysicalDrive1':?sdiskio(read_count=7702,?write_count=98,?read_bytes=41695232,?write_bytes=4730880,?read_time=19,?write_time=0)}

"""

網絡相關

查看網卡的網絡 IO 統計信息

frompprintimportpprint

importpsutil

pprint(psutil.net_io_counters())

"""

snetio(bytes_sent=536008958,?bytes_recv=8676204996,?packets_sent=2725499,?packets_recv=7225179,?errin=0,?errout=9,?dropin=0,?dropout=0)

"""

#?bytes_sent:?發送的字節數

#?bytes_recv:?接收的字節數

#?packets_sent:?發送的包數據量

#?packets_recv:?接收的包數據量

#?errin:?接收包時,?出錯的次數

#?errout:?發送包時,?出錯的次數

#?dropin:?接收包時,?丟棄的次數

#?dropout:?發送包時,?丟棄的次數

#?里面還有一個?pernic?參數,?如果為?True,?則列出所有網卡的信息

pprint(psutil.net_io_counters(pernic=True))

"""

{'Loopback?Pseudo-Interface?1':?snetio(bytes_sent=0,?bytes_recv=0,?packets_sent=0,?packets_recv=0,?errin=0,?errout=0,?dropin=0,?dropout=0),

'WLAN':?snetio(bytes_sent=534497477,?bytes_recv=8678905297,?packets_sent=2706204,?packets_recv=7244187,?errin=0,?errout=0,?dropin=0,?dropout=0),

'以太網':?snetio(bytes_sent=0,?bytes_recv=0,?packets_sent=0,?packets_recv=0,?errin=0,?errout=0,?dropin=0,?dropout=0),

'以太網?2':?snetio(bytes_sent=3612804,?bytes_recv=7955853,?packets_sent=32818,?packets_recv=26442,?errin=0,?errout=9,?dropin=0,?dropout=0),

'本地連接*?2':?snetio(bytes_sent=0,?bytes_recv=0,?packets_sent=0,?packets_recv=0,?errin=0,?errout=0,?dropin=0,?dropout=0),

'本地連接*?3':?snetio(bytes_sent=0,?bytes_recv=0,?packets_sent=0,?packets_recv=0,?errin=0,?errout=0,?dropin=0,?dropout=0),

'藍牙網絡連接':?snetio(bytes_sent=0,?bytes_recv=0,?packets_sent=0,?packets_recv=0,?errin=0,?errout=0,?dropin=0,?dropout=0)}

"""

查看網絡接口信息

from?pprint?import?pprint

import?psutil

#?以字典的形式返回網卡的配置信息,?包括?IP?地址、Mac地址、子網掩碼、廣播地址等等

pprint(psutil.net_if_addrs())

"""

{'Loopback?Pseudo-Interface?1':?[snicaddr(family=,?address='127.0.0.1',?netmask='255.0.0.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='::1',?netmask=None,?broadcast=None,?ptp=None)],

'WLAN':?[snicaddr(family=,?address='04-EA-56-8C-36-24',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='192.168.8.115',?netmask='255.255.255.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='fd94:e9ee:f230:6e00:55c9:8d1e:f23d:3acc',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='fd94:e9ee:f230:6e00:dc07:1987:2395:d871',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='fe80::55c9:8d1e:f23d:3acc',?netmask=None,?broadcast=None,?ptp=None)],

'以太網':?[snicaddr(family=,?address='9C-7B-EF-15-FC-2F',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='10.254.61.6',?netmask='255.255.255.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='169.254.54.71',?netmask='255.255.0.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='fe80::4826:a6a6:b5f4:3647',?netmask=None,?broadcast=None,?ptp=None)],

'以太網?2':?[snicaddr(family=,?address='00-FF-B3-BA-07-AE',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='2.0.1.32',?netmask='255.255.255.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='fe80::cc21:26c6:9327:1355',?netmask=None,?broadcast=None,?ptp=None)],

'本地連接*?2':?[snicaddr(family=,?address='04-EA-56-8C-36-25',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='169.254.45.234',?netmask='255.255.0.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='fe80::d958:b3fe:ef3d:2dea',?netmask=None,?broadcast=None,?ptp=None)],

'本地連接*?3':?[snicaddr(family=,?address='06-EA-56-8C-36-24',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='169.254.41.166',?netmask='255.255.0.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='fe80::6474:c583:1626:29a6',?netmask=None,?broadcast=None,?ptp=None)],

'藍牙網絡連接':?[snicaddr(family=,?address='04-EA-56-8C-36-28',?netmask=None,?broadcast=None,?ptp=None),

snicaddr(family=,?address='169.254.135.205',?netmask='255.255.0.0',?broadcast=None,?ptp=None),

snicaddr(family=,?address='fe80::5cbd:8913:7499:87cd',?netmask=None,?broadcast=None,?ptp=None)]}

"""

#?返回網卡的詳細信息,?包括是否啟動、通信類型、傳輸速度、mtu

pprint(psutil.net_if_stats())

"""

{'Loopback?Pseudo-Interface?1':?snicstats(isup=True,?duplex=,?speed=1073,?mtu=1500),

'WLAN':?snicstats(isup=True,?duplex=,?speed=866,?mtu=1500),

'以太網':?snicstats(isup=False,?duplex=,?speed=0,?mtu=1500),

'以太網?2':?snicstats(isup=True,?duplex=,?speed=10,?mtu=1400),

'本地連接*?2':?snicstats(isup=False,?duplex=,?speed=0,?mtu=1500),

'本地連接*?3':?snicstats(isup=False,?duplex=,?speed=0,?mtu=1500),

'藍牙網絡連接':?snicstats(isup=False,?duplex=,?speed=3,?mtu=1500)}

"""

查看當前機器的網絡連接

frompprintimportpprint

importpsutil

#?以列表的形式返回每個網絡連接的詳細信息

#?里面接受一個參數,?默認是?"inet",?當然我們也可以指定為其它,?比如?"tcp"

pprint(psutil.net_connections())

"""

[sconn(fd=-1,?family=,?type=,?laddr=addr(ip='0.0.0.0',?port=1024),?raddr=(),?status='LISTEN',?pid=940),

sconn(fd=-1,?family=,?type=,?laddr=addr(ip='0.0.0.0',?port=5432),?raddr=(),?status='LISTEN',?pid=7620),

sconn(fd=-1,?family=,?type=,?laddr=addr(ip='127.0.0.1',?port=10637),?raddr=addr(ip='127.0.0.1',?port=10638),?status='ESTABLISHED',?pid=10152),

sconn(fd=-1,?family=,?type=,?laddr=addr(ip='127.0.0.1',?port=10613),?raddr=addr(ip='127.0.0.1',?port=10612),?status='ESTABLISHED',?pid=10152),

sconn(fd=-1,?family=,?type=,?laddr=addr(ip='::',?port=5353),?raddr=(),?status='NONE',?pid=8820),

sconn(fd=-1,?family=,?type=,?laddr=addr(ip='127.0.0.1',?port=54541),?raddr=(),?status='LISTEN',?pid=2908),

sconn(fd=-1,?family=,?type=,

....

....

....

]

"""

#?是不是很方便呢??在?Linux?中有兩個命令可以做到這一點,?netstat?和?ss

#?$?netstat?-nat

#?$?ss?-nat

#?但是在生產環境中,?線上服務器很多都是最小化安裝,?并不能保證每臺機器上都有?ss?或者?netstat?命令,?而這個時候?psutil?就派上用場了

查看當前登錄的用戶信息

frompprintimportpprint

importpsutil

pprint(psutil.users())

#?[suser(name='satori',?terminal=None,?host='0.0.0.0',?started=1609841661.0,?pid=None)]

name: 用戶名

terminal: 終端

host: 主機地址

started: 登錄時間

pid: 進程id

查看系統的啟動時間

frompprintimportpprint

importpsutil

importdatetime

pprint(psutil.boot_time())#?1585282271.0

print(datetime.datetime.fromtimestamp(psutil.boot_time()))#?2020-03-27?12:11:11

進程管理

psutil 還提供了很多和進程管理相關的功能函數,非常的豐富,我們來看一下。

查看當前存在的所有進程的 pid

frompprintimportpprint

importpsutil

pprint(psutil.pids())

"""

[0,

4,

144,

512,

536,

632,

640,

664,

696,

768,

776,

...

...

...

]

"""

查看某個進程是否存在

frompprintimportpprint

importpsutil

pprint(psutil.pid_exists(22333))#?False

pprint(psutil.pid_exists(0))#?True

返回所有進程(Process)對象組成的迭代器

frompprintimportpprint

importpsutil

pprint(psutil.process_iter())#?

根據 pid 獲取一個進程對應的 Process 對象

frompprintimportpprint

importpsutil

pprint(psutil.Process(pid=0))#?psutil.Process(pid=0,?name='System?Idle?Process',?started='2020-2-27?09:07:47')

獲取進程相關的具體信息

我們說根據 pid 可以獲取一個進程對應的 Process 對象,而這個對象里面包含了該進程的全部信息。

frompprintimportpprint

importpsutil

p?=?psutil.Process(pid=16948)

#?進程名稱

print(p.name())#?WeChat.exe

#?進程的exe路徑

print(p.exe())#?D:\WeChat\WeChat.exe

#?進程的工作目錄

print(p.cwd())#?D:\WeChat

#?進程啟動的命令行

print(p.cmdline())#?['D:\\WeChat\\WeChat.exe']

#?當前進程id

print(p.pid)#?16948

#?父進程id

print(p.ppid())#?11700

#?父進程

print(p.parent())#?psutil.Process(pid=11700,?name='explorer.exe',?started='09:19:06')

#?子進程列表

pprint(p.children())

"""

[psutil.Process(pid=17452,?name='WeChatWeb.exe',?started='09:21:02'),

psutil.Process(pid=16216,?name='WeChatApp.exe',?started='09:21:40'),

psutil.Process(pid=13452,?name='SogouCloud.exe',?started='09:22:14')]

"""

#?進程狀態

print(p.status())#?running

#?進程用戶名

print(p.username())#?LAPTOP-264ORES3\satori

#?進程創建時間,返回時間戳

print(p.create_time())#?1561775539.0

#?進程終端

#?在windows上無法使用

try:

print(p.terminal())

exceptExceptionase:

print(e)#?'Process'?object?has?no?attribute?'terminal'

#?進程使用的cpu時間

print(p.cpu_times())#?pcputimes(user=133.3125,?system=188.203125,?children_user=0.0,?children_system=0.0)

#?進程所使用的的內存

print(p.memory_info())

"""

pmem(rss=128634880,?vms=117067776,?num_page_faults=12193918,

peak_wset=263921664,?wset=128634880,?peak_paged_pool=1398584,

paged_pool=1329936,?peak_nonpaged_pool=313896,?nonpaged_pool=152192,

pagefile=117067776,?peak_pagefile=201670656,?private=117067776)

"""

#?進程打開的文件

pprint(p.open_files())

"""

[popenfile(path='C:\\Users\\satori\\Documents\\WeChat?Files\\wxid_3ksrps1o47mf22\\Msg\\Media.db-wal',?fd=-1),

popenfile(path='C:\\Users\\satori\\AppData\\Roaming\\Tencent\\WeChat\\All?Users\\CefResources\\2581\\qb_200_percent.pak',?fd=-1),

popenfile(path='C:\\Users\\satori\\Documents\\WeChat?Files\\wxid_3ksrps1o47mf22\\Msg\\Multi\\MSG0.db-shm',?fd=-1),

popenfile(path='C:\\Program?Files\\WindowsApps\\Microsoft.LanguageExperiencePackzh-CN_18362.28.87.0_neutral__8wekyb3d8bbwe\\Windows\\System32\\zh-CN\\dui70.dll.mui',?fd=-1),

popenfile(path='C:\\Users\\satori\\Documents\\WeChat?Files\\wxid_3ksrps1o47mf22\\Msg\\Multi\\MediaMSG2.db-shm',?fd=-1),

popenfile(path='C:\\Users\\satori\\Documents\\WeChat?Files\\wxid_3ksrps1o47mf22\\Msg\\Emotion.db-wal',?fd=-1),

popenfile(path='C:\\Windows\\Fonts\\msyh.ttc',?fd=-1),

......

......

......

]

"""

#?進程相關的網絡連接

pprint(p.connections())

"""

[pconn(fd=-1,?family=,?type=,?laddr=addr(ip='192.168.8.115',?port=5162),?raddr=addr(ip='183.3.234.107',?port=443),?status='ESTABLISHED'),

pconn(fd=-1,?family=,?type=,?laddr=addr(ip='192.168.8.115',?port=13856),?raddr=addr(ip='61.151.168.204',?port=80),?status='CLOSE_WAIT'),

pconn(fd=-1,?family=,?type=,?laddr=addr(ip='0.0.0.0',?port=8680),?raddr=(),?status='LISTEN')]

"""

#?進程內的線程數量,這個進程開啟了多少個線程

print(p.num_threads())#?66

#?這個進程內的所有線程信息

pprint(p.threads())

"""

[pthread(id=13340,?user_time=113.328125,?system_time=179.015625),

pthread(id=17120,?user_time=0.0,?system_time=0.0625),

pthread(id=7216,?user_time=0.15625,?system_time=0.515625),

pthread(id=13360,?user_time=0.703125,?system_time=0.21875),

pthread(id=10684,?user_time=0.015625,?system_time=0.078125),

pthread(id=13552,?user_time=2.9375,?system_time=0.171875),

pthread(id=12620,?user_time=0.265625,?system_time=0.296875),

pthread(id=14492,?user_time=0.015625,?system_time=0.03125),

pthread(id=14568,?user_time=0.0,?system_time=0.046875),

pthread(id=17112,?user_time=0.015625,?system_time=0.0625),

pthread(id=9344,?user_time=0.0,?system_time=0.015625),

pthread(id=13544,?user_time=0.0,?system_time=0.0),

pthread(id=10028,?user_time=0.078125,?system_time=0.125),

pthread(id=4920,?user_time=0.015625,?system_time=0.0625),

pthread(id=5744,?user_time=0.0,?system_time=0.015625),

pthread(id=7044,?user_time=0.0,?system_time=0.0),

pthread(id=14064,?user_time=0.0,?system_time=0.0),

pthread(id=11916,?user_time=0.0,?system_time=0.0),

pthread(id=1316,?user_time=0.0,?system_time=0.0),

pthread(id=18100,?user_time=0.0,?system_time=0.0),

pthread(id=2992,?user_time=0.0,?system_time=0.0),

pthread(id=8956,?user_time=0.0,?system_time=0.0),

pthread(id=8588,?user_time=0.03125,?system_time=0.03125),

pthread(id=3944,?user_time=0.0,?system_time=0.03125),

pthread(id=15828,?user_time=0.0,?system_time=0.015625),

pthread(id=7348,?user_time=0.0,?system_time=0.03125),

pthread(id=3400,?user_time=0.0,?system_time=0.015625),

pthread(id=8628,?user_time=0.0,?system_time=0.0),

pthread(id=2400,?user_time=0.0,?system_time=0.0),

pthread(id=9432,?user_time=1.28125,?system_time=0.171875),

pthread(id=11544,?user_time=0.0,?system_time=0.015625),

pthread(id=12348,?user_time=2.96875,?system_time=3.78125),

pthread(id=3444,?user_time=0.0,?system_time=0.0),

pthread(id=17476,?user_time=0.0,?system_time=0.0),

pthread(id=15856,?user_time=0.0,?system_time=0.015625),

pthread(id=12248,?user_time=0.0,?system_time=0.0),

pthread(id=17280,?user_time=0.0,?system_time=0.0),

......

......

......

]

"""

#?進程的環境變量

pprint(p.environ())

"""

{'ALLUSERSPROFILE':?'C:\\ProgramData',

'APPDATA':?'C:\\Users\\satori\\AppData\\Roaming',

'COMMONPROGRAMFILES':?'C:\\Program?Files?(x86)\\Common?Files',

'COMMONPROGRAMFILES(X86)':?'C:\\Program?Files?(x86)\\Common?Files',

'COMMONPROGRAMW6432':?'C:\\Program?Files\\Common?Files',

'COMPUTERNAME':?'LAPTOP-264ORES3',

'COMSPEC':?'C:\\WINDOWS\\system32\\cmd.exe',

'DRIVERDATA':?'C:\\Windows\\System32\\Drivers\\DriverData',

'GOPATH':?'C:\\Users\\satori\\go',

'HOMEDRIVE':?'C:',

'HOMEPATH':?'\\Users\\satori',

'LOCALAPPDATA':?'C:\\Users\\satori\\AppData\\Local',

'LOGONSERVER':?'\\\\LAPTOP-264ORES3',

'NUMBER_OF_PROCESSORS':?'12',

'ONEDRIVE':?'C:\\Users\\satori\\OneDrive',

'ONEDRIVECONSUMER':?'C:\\Users\\satori\\OneDrive',

'ONLINESERVICES':?'Online?Services',

'OS':?'Windows_NT',

'PATH':?'C:\\Program?Files?(x86)\\Intel\\Intel(R)?Management?Engine?'

'Components\\iCLS\\;C:\\Program?Files\\Intel\\Intel(R)?Management?'

'Engine?'

'Components\\iCLS\\;C:\\windows\\system32;C:\\windows;C:\\windows\\System32\\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\windows\\System32\\OpenSSH\\;C:\\Program?'

'Files?(x86)\\Intel\\Intel(R)?Management?Engine?'

'Components\\DAL;C:\\Program?Files\\Intel\\Intel(R)?Management?Engine?'

'Components\\DAL;C:\\Program?Files?(x86)\\NVIDIA?'

'Corporation\\PhysX\\Common;C:\\Program?'

'Files\\Intel\\WiFi\\bin\\;C:\\Program?Files\\Common?'

'Files\\Intel\\WirelessCommon\\;C:\\python37;c:\\python37\\Scripts;C:\\Program?'

'Files\\Git\\cmd;E:\\instantclient_10_2;C:\\Program?'

'Files\\Redis\\;D:\\ffmpeg\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Go\\bin;C:\\MingW\\bin;C:\\Users\\satori\\.cargo\\bin;C:\\python37\\Scripts\\;C:\\python37\\;C:\\python38\\Scripts\\;C:\\python38\\;C:\\Users\\satori\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\satori\\go\\bin',

'PATHEXT':?'.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',

'PLATFORMCODE':?'AN',

'PROCESSOR_ARCHITECTURE':?'x86',

'PROCESSOR_ARCHITEW6432':?'AMD64',

'PROCESSOR_IDENTIFIER':?'Intel64?Family?6?Model?158?Stepping?10,?GenuineIntel',

'PROCESSOR_LEVEL':?'6',

'PROCESSOR_REVISION':?'9e0a',

'PROGRAMDATA':?'C:\\ProgramData',

'PROGRAMFILES':?'C:\\Program?Files?(x86)',

'PROGRAMFILES(X86)':?'C:\\Program?Files?(x86)',

'PROGRAMW6432':?'C:\\Program?Files',

'PSMODULEPATH':?'C:\\Program?'

'Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules',

'PUBLIC':?'C:\\Users\\Public',

'REGIONCODE':?'APJ',

'SESSIONNAME':?'Console',

'SYSTEMDRIVE':?'C:',

'SYSTEMROOT':?'C:\\WINDOWS',

'TBS_CONTENT_MAIN_RUNNER_INITIALIZED':?'1',

'TEMP':?'C:\\Users\\satori\\AppData\\Local\\Temp',

'TMP':?'C:\\Users\\satori\\AppData\\Local\\Temp',

'USERDOMAIN':?'LAPTOP-264ORES3',

'USERDOMAIN_ROAMINGPROFILE':?'LAPTOP-264ORES3',

'USERNAME':?'satori',

'USERPROFILE':?'C:\\Users\\satori',

'VS140COMNTOOLS':?'C:\\Program?Files?(x86)\\Microsoft?Visual?Studio?'

'14.0\\Common7\\Tools\\',

'WINDIR':?'C:\\WINDOWS',

'WXDRIVE_START_ARGS':?'--wxdrive-setting=0?--disable-gpu?'

'--disable-software-rasterizer?'

'--enable-features=NetworkServiceInProcess'}

"""

#?結束進程,?返回?None,?執行之后微信就會被強制關閉,?當然這里就不試了

#?print(p.terminal())??#?None

我們還可以調用 psutil.test 來模擬 ps 命令。

importpsutil

psutil.test()

"""

USERPID%MEMVSZRSSNICESTATUSSTARTTIMECMDLINE

SYSTEM0???0.060.0K8.0KrunniDec3000:39SystemIdleP

SYSTEM4???0.0236.0K1.4MrunniDec3014:32System

144???0.28.1M32.2MrunniDec3000:03Registry

512???0.01.1M304.0KrunniDec3000:00smss.exe

536???0.0912.0K1.0MrunniDec3000:00svchost.exe

632???0.113.0M15.0MrunniDec3000:29svchost.exe

640???0.02.1M1.3MrunniDec3000:00fontdrvhost.e

satori664???0.126.1M17.1M32runni09:1900:02C:\WINDOWS\Sy

696???0.06.7M3.8MrunniDec3000:04WUDFHost.exe

768???0.01.9M1.9MrunniDec3000:26csrss.exe

......................

......................

......................

......................

......................

"""

它是怎么做的呢?還記得我們之前說的 process_iter 嗎?會返回所有進程的 Process 對象,直接依次輸出里面的信息即可。同理,我們也可以通過 process_iter 找到某一個進程對應的進程 id。

importpsutil

forprcsinpsutil.process_iter():

ifprcs.name().lower()?=="wechat.exe":

print(prcs.pid)

"""

16948

"""

#?有了這個騷操作之后,我們便可以通過進程?id?找到對應的進程

#?然后修改里面的數據

小結

總的來說,這個庫是非常強大的,很好用,可以獲取很多底層的信息。

總結

以上是生活随笔為你收集整理的python库的使用手册_​Python 常用库之 psutil 使用指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。