我认为这是一个非常基本的问题,但无论如何它都在这里。
我需要编写一个python脚本来检查以确保一个进程,例如notepad.exe正在运行。如果进程正在运行,则不执行任何操作。如果不是,请启动它。怎么做呢。
我在Windows XP上使用Python 2.6
答案 0 :(得分: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')
(要启动的文件/进程的名称不需要是字节对象。)
答案 1 :(得分:4)
有几个选项,
1:更粗糙但更明显的是对文字进行处理:
os.popen('tasklist').read()
2:更复杂的选择是使用pywin32并研究win32 API以确定正在运行的进程。
3:WMI(我刚才found this),以及here is a vbscript如何通过WMI查询机器进程的示例。
答案 2 :(得分:3)