본문 바로가기

Language/Python

[Python] 현재 실행 중인 Process Information 가져오기

Python을 이용하여 현재 실행 중인 프로세스 리스트 정보를 따오는 걸 오랜만에 할 생각에 검색 좀 하다가


예전에는 Win32com을 이용했던 거 같은데 그 것 보다 아주 심플한 녀석을 발견..


언제 wmi를 직접 사용할 수 있는 모듈이 나온 건지...


분명 나중에 또 까먹을테니 메모 메모~


import wmi

WMI_OBJ = wmi.WMI()

process_list = WMI_OBJ.Win32_Process()

for process in process_list:
    print process
    break


이전에는 분명 win32com의 모듈을 시작으로 코드가 길었었는데.. wmi를 직접 사용하는 모듈이 나올 줄이야...


프로세스의 전체 리스트를 출력하면 양이 많아지니 딱 처음 프로세스의 정보만 출력하고 break 를 걸어보면


System Idle Process 의 정보가 확인된다.


반환 된 값은 아래와 같은 인스턴스 형태로 모든 프로세스의 정보를 제공한다. 원하는 정보를 골라서 써먹으면 되겠음.





instance of Win32_Process

{

        Caption = "System Idle Process";

        CreationClassName = "Win32_Process";       

        CreationDate = "20200423084455.052129+540";

        CSCreationClassName = "Win32_ComputerSystem";

        CSName = "SLAYS_DESKTOP";

        Description = "System Idle Process";

        Handle = "0";

        HandleCount = 0;

        KernelModeTime = "655224687500";

        Name = "System Idle Process";

        OSCreationClassName = "Win32_OperatingSystem";

        OSName = "Microsoft Windows 10 Pro|C:\\Windows|\\Device\\Harddisk2\\Partition1";

        OtherOperationCount = "0";

        OtherTransferCount = "0";

        PageFaults = 9;

        PageFileUsage = 60;

        ParentProcessId = 0;

        PeakPageFileUsage = 60;

        PeakVirtualSize = "8192";

        PeakWorkingSetSize = 12;

        Priority = 0;

        PrivatePageCount = "61440";

        ProcessId = 0;

        QuotaNonPagedPoolUsage = 1;

        QuotaPagedPoolUsage = 0;

        QuotaPeakNonPagedPoolUsage = 1;

        QuotaPeakPagedPoolUsage = 0;

        ReadOperationCount = "0";

        ReadTransferCount = "0";

        SessionId = 0;

        ThreadCount = 12;

        UserModeTime = "0";

        VirtualSize = "8192";

        WindowsVersion = "10.0.18363";

        WorkingSetSize = "8192";

        WriteOperationCount = "0";

        WriteTransferCount = "0";

};