Найти - Пользователи
Полная версия: Получение списка процессов и удаление ненужного
Начало » Python для новичков » Получение списка процессов и удаление ненужного
1
rudichekkk
Подскажите пожалуйста как удалить самый тяжелый блокнот который запущен на вашем компьютере под Windows?

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

proc1 = subprocess.call("tasklist", shell = True)
elisk
Про “…самый тяжелый блокнот…” не понятно, вот скрипт который убивает процесс, который ест больше всего памяти (кроме системных процессов). Без использования 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)
rudichekkk
elisk
Про “…самый тяжелый блокнот…” не понятно, вот скрипт который убивает процесс, который ест больше всего памяти (кроме системных процессов). Без использования PID .

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

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

Спасибо тебе огромное)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB