С получением всего списка проблем нет, а вот со считыванием и манипулированием его не могу разобраться, помогите пожалуйста.
import subprocess
proc1 = subprocess.call("tasklist", shell = True)
import subprocess
proc1 = subprocess.call("tasklist", shell = True)
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
Про “…самый тяжелый блокнот…” не понятно, вот скрипт который убивает процесс, который ест больше всего памяти (кроме системных процессов). Без использования PID .
elisk
строка 3: запускаем wmic для получения списка процессов (WMIC представляет собой командную строку и интерфейс написания сценариев: WMIC)строка 4: создаем пустой список куда будем кидать пары кортежей из процесса и объема занимаемой памяти, чтобы потом получить словарь.строка 5: в цикле for получаем эти пары кортежей и добавляем их в словарьстрока 9: except (IndexError, ValueError) - так как первая строка в списке названия столбцов то получаем исключение IndexError, а последняя - пустой список что дает нам ValueError. Их мы и пропускаем.строка 12: создаем словарь из кортежей. Первым значением - объем памяти, вторым - имя процеса.строка 13: получаем максимальное значение по объему.Предпоследняя строка except Exception as err: нужна если процесс системный.