1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| class SystemInfo(object): """ Get operating system information """ def __init__(self): pass def process_info(self): """ :return: A list of all process details of the system """ proc, all_processes = [], psutil.process_iter() for items in all_processes: try: procinfo = items.as_dict(attrs=["pid", "name"]) try: #the process start path p_path_cwd = items.cwd().decode("gbk") #the process accounts for system memory uasge proc_mem_percent = items.memory_percent() #the process starts cmdline content cmdlines = str(items.cmdline()) #the process accounts for system CPU usage cpu_percent = items.cpu_percent(interval=1) except Exception,e: try: p_path_cwd = items.exe() except Exception,e:p_path_cwd = e.name p_status, p_create_time, proc_user, proc_io_info = items.status(), items.create_time(),items.username() , {} try: proc_io = items.io_counters() proc_io_info["ReadCount"] = proc_io.read_count proc_io_info["WriteCount"] = proc_io.write_count proc_io_info["ReadBytes"] = proc_io.read_bytes proc_io_info["WriteBytes"] = proc_io.write_bytes except Exception,e:pass procinfo.update({"path": p_path_cwd, "cmdline":cmdlines, "cpu_percent":cpu_percent, "status": p_status, "CreateTime": p_create_time, "MemPercent": proc_mem_percent, "user": proc_user, "DiskIo": proc_io_info}) except Exception, e:pass finally: proc.append(procinfo) return proc if __name__ == '__main__': print(SystemInfo().process_info())
|