포스트

python 에서 tasklist 가져오는 방법

python 에서 cmd 명령어 수행하는 함수

cmd 에서 tasklist 명령어를 치면 현재 프로레스 리스트를 확인할 수 있습니다.

os.system 으로 실행하면 텍스트 형태로 가져올 수 없습니다.

subprocess.call 도 마찬가지로 특정 명령문을 실행시킬 때만 사용할 수 있습니다.

subprocess.check_output 함수를 이용해서 리턴 결과를 가져올 수 있습니다.

python 에서 프로세스 리스트 가져오기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import re
import subprocess

def get_processes_running():
    # 영어일때는 `ignore` 인자 없어도 됨  
    tasks = subprocess.check_output(['tasklist']).decode('cp949', 'ignore').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
1
2
3
4
5
6
7
8
9
10
[
	{'image': 'System Idle Process',
	'pid': '0',
  	'session_name': 'Services',
 	 'session_num': '0',
  	'mem_usage': '8 K'},
  	.
  	.
  	.
]

참조

  1. https://stackoverflow.com/questions/13525882/tasklist-output
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.