在Windows中使用psutil查找进程是否正在运行
process_name = "CCC.exe"
for proc in psutil.process_iter():
if proc.name == process_name:
print ("have")
else:
print ("Dont have")
我知道CCC.exe这个程序正在运行。我用Python 2.7和3.4都试过这个代码。我也导入了psutil这个库。不过,虽然这个程序确实在运行,但它却显示“没有找到”。
3 个回答
0
我通过使用 WMI 而不是 psutil 解决了这个问题。你可以在这里找到 WMI 的信息
在 Windows 上安装它。
import wmi
c = wmi.WMI ()
for process in c.Win32_Process ():
if "a" in process.Name:
print (process.ProcessId, process.Name)
4
name
是 proc
的一个方法:
process_name = "CCC.exe"
for proc in psutil.process_iter():
if proc.name() == process_name:
print ("have")
else:
print ("Dont have")
0
这是我在Windows 7上用python v2.7时修改过的版本,运行得很好。
你在代码中这里的写法是错的:if proc.name == process_name:
。试着用print proc.name
来输出一下,你会发现为什么你的代码没有按预期工作。
代码:
import psutil
process_name = "System"
for proc in psutil.process_iter():
process = psutil.Process(proc.pid)# Get the process info using PID
pname = process.name()# Here is the process name
#print pname
if pname == process_name:
print ("have")
else: print ("Dont have")
这里有一些关于如何使用psutil的例子。我只是看了一下,找到了这个解决方案,也许还有更好的方法。希望对你有帮助。