如何在列表中分别获取Windows任务和后台任务?

时间:2019-05-20 19:46:56

标签: python operating-system subprocess task

我正在尝试制作一条快捷方式以结束除Windows任务以外的所有活动任务,并且我需要获取活动任务的列表,我进行了一些搜索并找到了答案,但是我在阅读和使用输出时遇到问题我应该分开Windows任务。

这是我找到的答案。

import subprocess
t=subprocess.check_output(['tasklist'])

我想要一个这样的列表:

["chrome.exe","sedsvc.exe",....]

但是该命令给了我这样的字节对象:

b"Image Name                     PID Session Name        Session#    Mem Usage

========================= ======== ================ =========== ============

System Idle Process              0 Services                   0          8 K

System                           4 Services                   0    122,932 K

smss.exe                       292 Services                   0        740 K"           

还有其他方法可以获取它们吗?

1 个答案:

答案 0 :(得分:0)

解析任务列表,例如

import re
import subprocess

tasks = subprocess.check_output(['tasklist']).decode('cp866', 'ignore').split("\r\n")
p = []
for task in tasks:
    m = re.match(b'(.*?)\\s+(\\d+)\\s+(\\w+)\\s+(\\w+)\\s+(.*?)\\s.*', task.encode())
    if m is not None:
        p.append(m.group(1).decode())
print(p)

p将保留您想要的列表,例如["chrome.exe","sedsvc.exe",....],但您需要剥离系统进程。