4

我想在可接受的时间内获得 Windows 7(以及后来的 Linux)下所有正在运行的 Python 进程的列表。根据结果​​,我想启动我的主要应用程序所依赖的其他新进程。

我从https://github.com/giampaolo/psutil尝试了 psutil :

import psutil
for process in psutil.process_iter():
    if process.name == 'python.exe':
        print(process)

这给了我好看的结果,但运行它大约需要一分钟!

我发现使用 psutil.process_iter() 遍历所有进程和使用psutil.get_pid_list ()列出所有进程都是可以接受的,但是获取每个进程的名称以识别 Python 进程(我将使用process.cmdline进一步调查) 似乎很贵。

任何想法如何显着提高速度或其他方法?

4

1 回答 1

3

直接使用ctypes使用 windows 功能EnumProcesses()(来自Kernel32.dllPsapi.dll取决于您的 windows 版本)。

于 2012-09-23T16:56:35.007 回答