2014-06-10 36 views
1
process_name = "CCC.exe" 
for proc in psutil.process_iter(): 
    if proc.name == process_name: 
     print ("have") 
    else: 
     print ("Dont have") 

我知道CCC.exe正在运行。我试过2.7和3.4 python的代码 我也导入了psutil。然而,这个过程是在那里,但它正在打印“不要”。查看进程是否在Windows中运行psutil

+0

你必须删除其他部分?对于其他exes,您只需打印“不要”。 – user3

+0

使用'print(proc.name)'来确切地看到哪些进程正在运行。 –

+0

家伙我已经回答了ny自己的问题..似乎psutil是越野车WMI模块虽然工作 –

回答

0

下面是修改的版本,与Python V2.7

你是在一个错误的方式在你的代码在这里if proc.name == process_name:做它为我工作在Windows 7上。尝试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") 

Here是有关如何使用psutil一些例子。我刚刚阅读并找出了这个解决方案,可能会有更好的解决方案。我希望这有帮助。

+0

'如果proc.name == process_name' –

+0

'没有问题'如果proc.name == process_name'不适用于我。 'print proc.name'在27187376 >>'处给出类似于<

+0

除非windows与pixtil的unix不同,否则它应该可以工作。如果不使用类似process.name()的操作,那么OP的原始代码就是所需要的。你不需要PID获得名 –

0

我用,而不是psutil WMI解决它。 https://pypi.python.org/pypi/WMI/

在Windows上安装它。

import wmi c = wmi.WMI() for process in c.Win32_Process(): if "a" in process.Name: print (process.ProcessId, process.Name)

2

nameproc方法:

process_name = "CCC.exe" 
for proc in psutil.process_iter(): 
    if proc.name() == process_name: 
     print ("have") 
    else: 
     print ("Dont have") 
相关问题