确定Python中正在运行的程序
我将如何使用 Python 来确定当前正在运行的程序。我在 Windows 上。
How would I use Python to determine what programs are currently running. I am on Windows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
感谢 @hb2pencil 的 WMIC 命令!以下是如何在没有文件的情况下通过管道传输输出:
Thanks to @hb2pencil for the WMIC command! Here's how you can pipe the output without a file:
现在 plist 包含一个格式化的以空格分隔的进程列表:
这应该很容易用 python 解析。请注意,第一行数据是列的标签,而不是实际的过程。
注意这个方法只适用于windows!
Now plist contains a formatted whitespace-separated list of processes:
This should be simple to parse with python. Note that the first row of data are labels for the columns, and not actual processes.
Note that this method only works on windows!
与用于获取进程的实际 Python 工具相比,来自子进程命令的管道信息并不理想。尝试 psutil 模块。要获取进程号列表,请执行以下操作:
恐怕您必须在线下载此模块,它不包含在 python 发行版中,但这是解决您的问题的更好方法。要访问您拥有编号的进程的名称,请执行以下操作:
这应该是您要查找的内容。另外,这里有一种查找特定进程是否正在运行的方法:
这使用可执行文件的名称,因此,例如,要查找 powershell 窗口,您可以这样做:
Piping information from sub process commands is not ideal compared to an actual python tool meant for getting processes. Try the psutil module. To get a list of process numbers, do:
I'm afraid you have to download this module online, it is not included in python distributions, but this is a better way to solve your problem. To access the name of the process you have a number for, do:
This should be what you are looking for. Also, here is a way to find if a specific process is running:
This uses the name of the executable file, so for example, to find a powershell window, you would do this:
我的 get_pid_list() 访问被拒绝。一种较新的方法在 Windows 和 OSX 上对我有用:
I was getting access denied with get_pid_list(). A newer method worked for me on windows and OSX: