Управляющий процесс в Python?

Я думаю, что это - довольно основной вопрос, но здесь это так или иначе.

Я должен записать сценарий Python, который проверяет, чтобы удостовериться, что процесс, для высказывания notepad.exe, работает. Если процесс работает, ничего не сделайте. Если это не, запустите его. Как это было бы сделано.

Я использую Python 2.6 на Windows XP

5
задан Hubert Kario 4 February 2012 в 21:15
поделиться

2 ответа

Есть несколько вариантов,

1: более грубый, но очевидный будет быть для обработки текста против:

os.popen('tasklist').read()

2: Более сложный вариант - использовать pywin32 и исследовать API Win32, чтобы выяснить, какие процессы запущены.

3: WMI (я нашел это только сейчас), и вот пример vbscript того, как запрашивать у машины процессы через WMI.

4
ответ дан 18 December 2019 в 07:08
поделиться

Функции создания процессов модуля os явно не рекомендуются в Python 2.6 и более поздних версиях, при этом модуль subprocess теперь является предпочтительным модулем, так что ...

if 'notepad.exe' not in subprocess.Popen('tasklist', stdout=subprocess.PIPE).communicate()[0]:
    subprocess.Popen('notepad.exe')

Обратите внимание, что в Python 3 проверяемая строка должна быть байтовым объектом, поэтому это будет

if b'notepad.exe' not in [blah]:
    subprocess.Popen('notepad.exe')

(имя файла / процесса, который нужно запустить, не обязательно должно быть байтовым объектом.)

15
ответ дан 18 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: