2014-06-10 62 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") 
相關問題