如何在可接受的时间内获得Windows下所有正在运行的Python进程?

如何在可接受的时间内获得Windows下所有正在运行的Python进程?,python,process,Python,Process,我希望在可接受的时间内获得Windows7(以及更高版本的Linux)下运行的所有Python进程的列表。基于这些结果,我希望启动我的主要应用程序所依赖的其他新流程 我从以下位置尝试了psutil: 这给了我很好看的结果,但运行这个大约需要一分钟 我发现,使用psutil.process\u iter()遍历所有进程和使用psutil.get\u pid\u list()列出所有进程都是可以接受的快速方法,但是获取每个进程的名称以识别Python进程(我将使用process.cmdline进一步

我希望在可接受的时间内获得Windows7(以及更高版本的Linux)下运行的所有Python进程的列表。基于这些结果,我希望启动我的主要应用程序所依赖的其他新流程

我从以下位置尝试了psutil:

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

我发现,使用psutil.process\u iter()遍历所有进程和使用psutil.get\u pid\u list()列出所有进程都是可以接受的快速方法,但是获取每个进程的名称以识别Python进程(我将使用process.cmdline进一步研究)看起来很贵


您知道如何大幅提高速度或其他方法吗?

直接使用windows函数(从
Kernel32.dll
Psapi.dll
,具体取决于您的windows版本)。

您应该改进psutil或使用其他实现。创建句柄,遍历所有进程,然后提取名称,每次评估
process.name
。为什么不使用
multiprocessing.Pool
来管理多个不同的进程?您应该在psutil bug tracker上创建一个问题。可以将此与pdb结合起来检查后台运行的Python进程中各个变量的值吗?
import psutil
for process in psutil.process_iter():
    if process.name == 'python.exe':
        print(process)