Как использовать Python для определения того, какие программы в данный момент запущены. Я нахожусь в Windows.Определение запуска программ в Python
ответ
import os
os.system('WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid')
f = open("C:\ProcessList.txt")
plist = f.readlines()
f.close()
Теперь Plist содержит форматированную разделенных пробелами список процессов:
- Первый столбец представляет собой имя исполняемого файла, который работает под управлением
- второй колонке команду, которая представляет ход процесс
- Третий столбец представляет собой идентификатор процесса
Это должно быть простым в р осел с питоном. Обратите внимание, что первая строка данных - это метки для столбцов, а не фактические процессы.
Обратите внимание, что этот метод работает только с окнами!
Спасибо, WMIC хорошо работал. К сожалению, выходного текстового файла было не так просто разобрать. Это в UTF-16, поэтому мне пришлось декодировать и перекодировать его как ASCII, чтобы легко анализировать использование if (processName в procList): return true – Murkantilism
Благодаря @ hb2pencil для команды WMIC! Вот как вы можете перенаправить вывод без файла:
import subprocess
cmd = 'WMIC PROCESS get Caption,Commandline,Processid'
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
for line in proc.stdout:
print line
Piping информация из суб процесса команды не является идеальным по сравнению с фактическим инструментом питона, предназначенной для получения процессов. Попробуйте модуль psutil. Чтобы получить список номеров процессов, сделайте следующее:
psutil.get_pid_list()
Я боюсь, что вы должны загрузить этот модуль в Интернете, это не входит в дистрибутивы питона, но это лучший способ, чтобы решить вашу проблему. Чтобы получить доступ к названию процесса, у вас есть номер для, do:
psutil.Process(<number>).name
Это должно быть то, что вы ищете. Кроме того, здесь есть способ, чтобы найти, если конкретный процесс работает:
def process_exists(name):
i = psutil.get_pid_list()
for a in i:
try:
if str(psutil.Process(a).name) == name:
return True
except:
pass
return False
Это использует имя исполняемого файла, так, например, чтобы найти окно Powershell, вы могли бы сделать это:
process_exists("powershell.exe")
get_pid_list() устарел, используйте pids() вместо – jake77
Я провел некоторое тестирование и для меня на win10 psutil занимает примерно 10 раз дольше, чтобы выполнить ту же задачу, что и трубопровод WMIC – user2145184
Мне было отказано в доступе с помощью get_pid_list(). Более новый метод работал для меня на окнах и OSX:
import psutil
for proc in psutil.process_iter():
try:
if proc.name() == u"chrome.exe":
print(proc)
print proc.cmdline()
except psutil.AccessDenied:
print "Permission error or access denied on process"
- 1. Использование python для запуска других программ
- 2. Захват текущих запущенных программ в качестве программ для запуска
- 3. Использование Maven для запуска программ
- 4. Баш выпуск скрипт запуска программ
- 5. Простой запуск программ для запуска питона скрипт
- 6. Сценарий Python для запуска и настройки нескольких программ
- 7. Как заменить планирование запуска программ с помощью программы Python
- 8. Определение ориентации запуска iPad
- 9. Изменение программ python (python 2.7)
- 10. Определение глобальной переменной для запуска в определенном PYTHON
- 11. Запуск программ терминалов из python
- 12. Отладка программ python в emacs
- 13. GUI's Запуск программ в python
- 14. Память программ на Python в окнах
- 15. Java Использование переменных в Eclipse после запуска программ
- 16. тестирование интерактивных программ python
- 17. Планирование программ на Python
- 18. Двойная команда для запуска программ в командной строке
- 19. Запуска Yaws использования запуска программ под Mac OS X Yosemite
- 20. Любой способ запуска программ оболочки на Android?
- 21. Использование ProcessBuilder для запуска нескольких программ
- 22. Пакетный файл для запуска нескольких программ
- 23. Выполнения сценариев оболочки запуска программ Сбой
- 24. Скелет .bat для запуска программ Java
- 25. Нужна программа Java для запуска моих программ
- 26. запуска программ не загружается Nginx при запуске
- 27. Запуска программ C++ с переменными входами
- 28. Использование нескольких программ одновременно в Python
- 29. Можно ли использовать Java Web Start для запуска серверных программ?
- 30. Определение запуска хрон с экраном работает Джанго
Эй! Добро пожаловать в StackOverflow! Было бы очень полезно, если бы вы разместили вещи, которые вы пробовали, но не сработали для вас. Это позволяет людям, отвечающим на вопросы, знать, с чем вы столкнулись. Удачи с вашим вопросом! –