📌  相关文章
📜  Python – 获取正在运行的进程列表

📅  最后修改于: 2022-05-13 01:55:01.107000             🧑  作者: Mango

Python – 获取正在运行的进程列表

进程是正在执行(处理)的程序。一个进程可能不必是由用户显式运行的,它可以是操作系统产生的系统进程。任何在操作系统上执行的应用程序首先创建一个自己的进程以便执行。在典型的操作系统安装中,大多数进程是操作系统服务和后台应用程序,它们运行以维护操作系统、软件和硬件。
在本文中,我们将了解通过Python获取 Windows 操作系统正在运行的进程列表的不同方法。首先,我们将描述一个Python方法以实现结果,然后查看在 Windows 命令处理器中找到的相同命令。
方法一:
我们将使用 wmi 库来获取 Windows 操作系统上正在运行的进程列表。为了安装模块,请在操作系统的命令解释器中执行以下命令:-

pip install wmi


代码:

Python3
import wmi
 
# Initializing the wmi constructor
f = wmi.WMI()
 
# Printing the header for the later columns
print("pid   Process name")
 
# Iterating through all the running processes
for process in f.Win32_Process():
     
    # Displaying the P_ID and P_Name of the process
    print(f"{process.ProcessId:<10} {process.Name}")


Python3
import os
 
# Running the aforementioned command and saving its output
output = os.popen('wmic process get description, processid').read()
 
# Displaying the output
print(output)


Python3
# import module
import subprocess
 
# traverse the software list
Data = subprocess.check_output(['wmic', 'process', 'list', 'brief'])
a = str(Data)
# try block
#  arrange the string
try:
    for i in range(len(a)):
        print(a.split("\\r\\r\\n")[i])
except IndexError as e:
    print("All Done")


输出:

3196       RuntimeBroker.exe
3524       ShellExperienceHost.exe
3548       SearchIndexer.exe
3796       SearchUI.exe
4136       IDMan.exe
4368       IEMonitor.exe
4488       notepad.exe
2616       SettingSyncHost.exe
4212       dasHost.exe
4664       AdaptiveSleepService.exe
4716       svchost.exe
5412       chrome.exe
1376       chrome.exe
1280       cmd.exe
4928       conhost.exe
5596       py.exe
5060       python.exe
1508       WmiPrvSE.exe

解释:
首先,我们初始化 wmi 库的 WMI()函数。这使我们可以使用其中的功能,例如 WMI.Win32_Service、WMI.Win32_Process、WMI.Win32_Printjob,这些功能旨在执行不同的任务。我们将使用 WMI.Win32_Process函数来获取系统上正在运行的进程列表。然后我们调用函数WMI.Win32_Process() 来获取正在运行的进程,遍历每个进程并存储在变量 process 中。然后我们使用关联的属性获得了进程的 ProcessID (pid) 和 ProcessName (name)。我们使用 F 字符串作为输出,以便在输出中添加填充以正确对齐它。方法二:
在这种方法中,我们将使用 Windows 命令处理器 (cmd.exe) 中名为 WMIC( Windows Management Instrumentation 命令行)的命令来获得所需的结果。 WMIC是一个命令行实用程序,允许用户使用命令提示符执行 Windows Management Instrumentation (WMI) 操作。为了获得正在运行的进程,我们将执行以下命令:

wmic process get description, processid 


代码:

Python3

import os
 
# Running the aforementioned command and saving its output
output = os.popen('wmic process get description, processid').read()
 
# Displaying the output
print(output)

输出:

Description               ProcessId

System Idle Process       0
System                    4
smss.exe                  340
csrss.exe                 460
wininit.exe               604
csrss.exe                 624
winlogon.exe              692
services.exe              736
lsass.exe                 756
svchost.exe               844
svchost.exe               904
dwm.exe                   1012
svchost.exe               80
svchost.exe               420
atiesrxx.exe              1076
svchost.exe               1992
svchost.exe               2032
MsMpEng.exe               2052
NisSrv.exe                2852
sihost.exe                3032
taskhostw.exe             2148
GoogleCrashHandler.exe    2712
GoogleCrashHandler64.exe  2704
explorer.exe              2892
RuntimeBroker.exe         3196
ShellExperienceHost.exe   3524
SearchIndexer.exe         3548
chrome.exe                1340
chrome.exe                2216


注意:为此目的使用 os 库不是强制性的。用户可以选择允许命令行命令执行的任何其他替代方案(Subprocess、shutil 等)。
解释:
我们使用了在 os 模块中找到的函数popen(),以便在命令处理器中执行命令。然后我们将上述命令的输出传递给 read() 以便从 os._wrap_close 对象中获取可读形式的数据。最后,我们显示了输出。

方法三:

我们将使用subprocess模块与 cmd 交互并将信息检索到您的Python ide。我们可以通过 subprocess 模块读取 cmd 命令。

让我们看看这个逻辑,如果我们在终端中运行这个wmic 进程列表简要代码,那么我们会得到这样的结果:

代码:

Python3

# import module
import subprocess
 
# traverse the software list
Data = subprocess.check_output(['wmic', 'process', 'list', 'brief'])
a = str(Data)
# try block
#  arrange the string
try:
    for i in range(len(a)):
        print(a.split("\\r\\r\\n")[i])
except IndexError as e:
    print("All Done")

输出:

b'HandleCount  Name                                                                Priority  ProcessId  ThreadCount  WorkingSetSize  
0            System Idle Process                                                 0         0          8            8192            
5649         System                                                              8         4          222          1835008         
0            Registry                                                            8         120        4            33910784        
89           smss.exe                                                            11        516        2            532480          
815          csrss.exe                                                           13        652        13           2019328         
217          wininit.exe                                                         13        740        1            3239936         
781          services.exe                                                        9         812        8            8294400         
1843         lsass.exe                                                           9         832        7            14864384        
86           svchost.exe                                                         8         1020       1            1351680         
32           fontdrvhost.exe                                                     8         308        5            196608          
1526         svchost.exe                                                         8         8          12           38608896        
270          WUDFHost.exe                                                        8         592        5            2097152         
1479         svchost.exe                                                         8         1056       11           16363520        
541          svchost.exe                                                         8         1104       15           4509696         
279          svchost.exe                                                         8         1260       3            2584576         
146          svchost.exe                                                         8         1284       1            6389760         
214          svchost.exe                                                         8         1300       3            3452928         
327          svchost.exe                                                         8         1308       6            5795840         
345          svchost.exe                                                         8         1332       13           10571776        
395          svchost.exe                                                         8         1452       7            5079040         
261          svchost.exe                                                         8         1460       5            5914624         
161          svchost.exe                                                         8         1472       2            4902912         
390          svchost.exe                                                         8         1580       11           9826304         
348          WUDFHost.exe                                                        13        1652       12           11526144        
225          svchost.exe                                                         8         1736       2            10473472        
205          svchost.exe                                                         8         1744       1            2093056         
278          svchost.exe                                                         8         1752       2            4444160         
174          svchost.exe                                                         8         1824       4            4063232         
224          svchost.exe                                                         8         1832       6            3821568         
593          svchost.exe                                                         8         2024       5            7610368         
186          svchost.exe                                                         8         1424       2            5058560         
168          igfxCUIService.exe                                                  8         2120       2            3579904         
435          svchost.exe                                                         8         2188       6            12341248        
279          svchost.exe                                                         8         2220       10           5017600         
227          svchost.exe                                                         8         2296       3            7024640         
221          svchost.exe                                                         8         2308       3            1908736         
384          svchost.exe                                                         8         2396       7            8499200         
0            Memory Compression                                                  8         2424       54           298409984       
240          svchost.exe                                                         8         2440       2            4845568         
179          svchost.exe                                                         8         2476       5            3567616         
239          svchost.exe                                                         8         2660       8            5775360         
3352         svchost.exe                                                         8         2684       9            6230016         
225          svchost.exe                                                         8         2816       2            4804608         
487          svchost.exe                                                         8         2872       7            9641984         
473          svchost.exe                                                         8         2912       4            13836288        
142          svchost.exe                                                         8         3032       4            2727936         
633          svchost.exe                                                         8         3048       3            16154624        
555          svchost.exe                                                         8         2072       14           12455936        
267          svchost.exe                                                         8         2936       4            7462912         
465          spoolsv.exe                                                         8         3168       7            4685824         
420          svchost.exe                                                         8         3200       10           8019968         
187          svchost.exe                                                         8         3324       6            2433024         
174          svchost.exe                                                         8         3572       2            2650112         
416          svchost.exe                                                         8         3584       5            13344768        
540          svchost.exe                                                         8         3592       10           24936448        
161          IntelCpHDCPSvc.exe                                                  8         3604       3            2052096         
406          svchost.exe                                                         8         3612       19           25100288