Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 27, 2016 12:17:19

rudichekkk
Зарегистрирован: 2016-02-21
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение списка процессов и удаление ненужного

Подскажите пожалуйста как удалить самый тяжелый блокнот который запущен на вашем компьютере под Windows?

С получением всего списка проблем нет, а вот со считыванием и манипулированием его не могу разобраться, помогите пожалуйста.

import subprocess

proc1 = subprocess.call("tasklist", shell = True)

Офлайн

#2 Фев. 27, 2016 15:36:57

elisk
Зарегистрирован: 2013-04-09
Сообщения: 35
Репутация: +  7  -
Профиль   Отправить e-mail  

Получение списка процессов и удаление ненужного

Про “…самый тяжелый блокнот…” не понятно, вот скрипт который убивает процесс, который ест больше всего памяти (кроме системных процессов). Без использования PID .

import subprocess
import os
out = subprocess.Popen('wmic /node:localhost process list brief', shell=True, stdout=subprocess.PIPE)
z = []
for line in out.stdout.readlines():
	try:
		z.append((int(str(line.split()[-1])[2:-1]), str(line.split()[1])[2:-1]))		
	
	except (IndexError, ValueError):
		continue  #  в первой строке нет цифр, а последняя пустой список
z = dict(z)		
zmax = max(z.keys())
text = "Процесс %s занимает %f Мб памяти"	
print(text % (z[zmax], zmax/1048576.0))
print("Убить процесс? Y или Enter: ", end = ' ')
y = input()
try:
	if y in ("Yy"):
		os.system("TASKKILL /F /IM " + z[zmax])
except Exception as err:
	print(err)

Отредактировано elisk (Фев. 27, 2016 15:47:39)

Офлайн

#3 Фев. 27, 2016 17:10:33

rudichekkk
Зарегистрирован: 2016-02-21
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение списка процессов и удаление ненужного

elisk
Про “…самый тяжелый блокнот…” не понятно, вот скрипт который убивает процесс, который ест больше всего памяти (кроме системных процессов). Без использования PID .

Имеется ввиду блокнот который занимает больше всего памяти.

Все работает, спасибо. Не могли бы вы сделать небольшие коментарии, а то не все понятно?

Отредактировано rudichekkk (Фев. 27, 2016 17:16:00)

Офлайн

#4 Фев. 27, 2016 20:17:26

elisk
Зарегистрирован: 2013-04-09
Сообщения: 35
Репутация: +  7  -
Профиль   Отправить e-mail  

Получение списка процессов и удаление ненужного

строка 3: запускаем wmic для получения списка процессов (WMIC представляет собой командную строку и интерфейс написания сценариев: WMIC)
строка 4: создаем пустой список куда будем кидать пары кортежей из процесса и объема занимаемой памяти, чтобы потом получить словарь.
строка 5: в цикле for получаем эти пары кортежей и добавляем их в словарь
строка 9: except (IndexError, ValueError) - так как первая строка в списке названия столбцов то получаем исключение IndexError, а последняя - пустой список что дает нам ValueError. Их мы и пропускаем.
строка 12: создаем словарь из кортежей. Первым значением - объем памяти, вторым - имя процеса.
строка 13: получаем максимальное значение по объему.
Предпоследняя строка except Exception as err: нужна если процесс системный.

Отредактировано elisk (Фев. 27, 2016 20:20:41)

Офлайн

#5 Фев. 28, 2016 10:50:39

rudichekkk
Зарегистрирован: 2016-02-21
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение списка процессов и удаление ненужного

elisk
строка 3: запускаем wmic для получения списка процессов (WMIC представляет собой командную строку и интерфейс написания сценариев: WMIC)строка 4: создаем пустой список куда будем кидать пары кортежей из процесса и объема занимаемой памяти, чтобы потом получить словарь.строка 5: в цикле for получаем эти пары кортежей и добавляем их в словарьстрока 9: except (IndexError, ValueError) - так как первая строка в списке названия столбцов то получаем исключение IndexError, а последняя - пустой список что дает нам ValueError. Их мы и пропускаем.строка 12: создаем словарь из кортежей. Первым значением - объем памяти, вторым - имя процеса.строка 13: получаем максимальное значение по объему.Предпоследняя строка except Exception as err: нужна если процесс системный.

Спасибо тебе огромное)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version