Tasklist output
python, python-3.x, tasklist
Solution
Based on a few of the other answers...
import subprocess
import re
def get_processes_running():
""" Takes tasklist output and parses the table into a dict
Example:
C:\Users\User>tasklist
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 43,064 K
smss.exe 400 Services 0 1,548 K
csrss.exe 564 Services 0 6,144 K
wininit.exe 652 Services 0 5,044 K
csrss.exe 676 Console 1 9,392 K
services.exe 708 Services 0 17,944 K
lsass.exe 728 Services 0 16,780 K
winlogon.exe 760 Console 1 8,264 K
# ... etc...
Returns:
[ {'image': 'System Idle Process', 'mem_usage': '24 K', 'pid': '0', 'session_name': 'Services', 'session_num': '0'},
{'image': 'System', 'mem_usage': '43,064 K', 'pid': '4', 'session_name': 'Services', 'session_num': '0'},
{'image': 'smss.exe', 'mem_usage': '1,548 K', 'pid': '400', 'session_name': 'Services', 'session_num': '0'},
{'image': 'csrss.exe', 'mem_usage': '6,144 K', 'pid': '564', 'session_name': 'Services', 'session_num': '0'},
{'image': 'wininit.exe', 'mem_usage': '5,044 K', 'pid': '652', 'session_name': 'Services', 'session_num': '0'},
{'image': 'csrss.exe', 'mem_usage': '9,392 K', 'pid': '676', 'session_name': 'Console', 'session_num': '1'},
{'image': 'services.exe', 'mem_usage': '17,892 K', 'pid': '708', 'session_name': 'Services', 'session_num': '0'},
{'image': 'lsass.exe', 'mem_usage': '16,764 K', 'pid': '728', 'session_name': 'Services', 'session_num': '0'},
{'image': 'winlogon.exe', 'mem_usage': '8,264 K', 'pid': '760', 'session_name': 'Console', 'session_num': '1'},
#... etc...
]
"""
tasks = subprocess.check_output(['tasklist']).split("\r\n")
p = []
for task in tasks:
m = re.match("(.+?) +(\d+) (.+?) +(\d+) +(\d+.* K).*",task)
if m is not None:
p.append({"image":m.group(1),
"pid":m.group(2),
"session_name":m.group(3),
"session_num":m.group(4),
"mem_usage":m.group(5)
})
return p
Problem
I am pretty new to python, but I am unable to find an answer to what I am thinking should be a relatively simple issue. I am trying to utilize `tasklist`, and I am wondering what I can do with the output of it (like set it to a variable, an array, things like that). I am using `Python 3.3`, and I have had some trouble finding documentation on `3.3`. The code is relatively simple: ``` import os os.system("tasklist") input() ``` This prints the tasklist, but I have had trouble getting data from that print into variables. I am assuming it's something minor to do with Python, and not to do with tasklist. Ultimately I am looking to make a matrix of the tasklist entries, that way I can search for a process, and grab the corresponding data.