2014-06-10 3 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. Однако процесс есть, но он печатает «Dont have».Найти, если процесс запущен в Windows psutil

+0

Вы должны удалить еще часть? для других exes вы просто печатаете «Dont have». – user3

+0

используйте 'print (proc.name)', чтобы посмотреть, какие процессы выполняются. –

+0

ребята, я ответил на свой собственный вопрос ..seems psutil - глючный модуль WMI работает, хотя –

ответ

0

Вот модифицированная версия, которая работает для меня на Windows 7 с питона 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") 

Here несколько примеров о том, как использовать psutil. Я просто прочитал их и понял это решение, возможно, есть лучшее решение. Надеюсь, это было полезно.

+0

нет ничего плохого в 'if proc.name == process_name' –

+0

' if proc.name == process_name' не работает для меня. 'print proc.name' дает что-то вроде '>', а позже условие if не работает. –

+0

Если окна не отличаются от unix с psutil, тогда он должен работать. Если не использовать что-то вроде process.name() с исходным кодом OP, это все, что необходимо. вам не нужен pid, чтобы получить имя –

0

Я решил его использовать WMI вместо psutil. https://pypi.python.org/pypi/WMI/

установить его на окна.

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

2

name является метод proc:

process_name = "CCC.exe" 
for proc in psutil.process_iter(): 
    if proc.name() == process_name: 
     print ("have") 
    else: 
     print ("Dont have") 
Смежные вопросы