Как мне реализовать цикл в этом скрипте? - PullRequest
0 голосов
/ 18 января 2019

Как мне зациклить этот код до тех пор, пока он не обнаружит, что разногласия больше не работают, и выведет строку else?

import psutil

def checkIfProcessRunning(processName):

for proc in psutil.process_iter():
    try:           
        if processName.lower() in proc.name().lower():
            return True
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        pass
return False;

if checkIfProcessRunning('discord'):
  print('Discord is running')
else:
  print('Discord is NOT running')

1 Ответ

0 голосов
/ 18 января 2019

Вы можете использовать бесконечный цикл, который имеет условие разрыва. Таким образом, в конце вашего кода у вас будет что-то вроде:

while checkIfProcessRunning('discord'):
    print('Discord is running')
print('Discord is NOT running')

Это будет работать, непрерывно вызывая checkIfProcessRunning('discord'). Если он возвращает True, то он продолжает цикл и проверяет снова. Когда вы вернете False, цикл прервется.

Однако, это будет печатать большую часть Discord is running, поэтому вы можете захотеть использовать какой-то метод сна в этом цикле, чтобы проверять только каждые 5 секунд или некоторое количество времени, например:

from time import sleep

while checkIfProcessRunning('discord'):
    print('Discord is running')
    sleep(5)
print('Discord is NOT running')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...