5

我认为这是一个非常基本的问题,但无论如何。

我需要编写一个 python 脚本来检查以确保一个进程,比如 notepad.exe,正在运行。如果进程正在运行,则什么也不做。如果不是,请启动它。这将如何完成。

我在 Windows XP 上使用 Python 2.6

4

3 回答 3

15

该模块的进程创建功能os在 Python 2.6 及更高版本中显然已弃用,该subprocess模块现在是首选模块,所以...

if 'notepad.exe' not in subprocess.Popen('tasklist', stdout=subprocess.PIPE).communicate()[0]:
    subprocess.Popen('notepad.exe')

请注意,在 Python 3 中,被检查的字符串需要是一个字节对象,所以它是

if b'notepad.exe' not in [blah]:
    subprocess.Popen('notepad.exe')

(要启动的文件/进程的名称不需要是字节对象。)

于 2010-07-09T18:14:52.723 回答
4

有几个选择,

1:更粗略但明显的是对以下内容进行一些文本处理:

os.popen('tasklist').read()

2:更复杂的选择是使用 pywin32 并研究 win32 API 以确定哪些进程正在运行。

3:WMI(我刚才发现了这个),这里有一个vbscript示例,说明如何通过WMI查询机器的进程。

于 2010-07-09T18:04:17.083 回答
3

用于 Linux 进程管理的 Python 库

于 2010-11-19T21:40:43.347 回答