Вывести все запущенные процессы Windows
Я хочу с помощью python вывести все запущенные процессы что-бы в них присутствовали PID,Название и Уровень доступа. Нашел такое решение
for proc in psutil.process_iter(['pid', 'name', 'username']):
print(proc.info)
file = open('file.txt', 'w+')
file.write(proc.info)
Но не могу записать в файл ошибка
TypeError: write() argument must be str, not dict
при попытке
file.write(str(proc.info))
в файл записывает только последний элемент
Ответы (3 шт):
Автор решения: MaxU
→ Ссылка
попробуйте так:
with open('c:/temp/file.txt', 'w+') as f:
for proc in psutil.process_iter(['pid', 'name', 'username']):
print('{name}\t{pid}\t{username}'.format(proc.info), file=f)
Автор решения: MaxU
→ Ссылка
Решение в стиле Pandas:
import pandas as pd
df = pd.DataFrame([proc.info for proc in psutil.process_iter(['pid', 'name', 'username'])])
df.to_csv("c:/temp/processes.csv", sep=";", index=False)
Автор решения: Danowski100
→ Ссылка
Просто нужно открывать файл не в "режиме записи"
file = open('file.txt', 'w')
Потому что в этом режиме файл полностью перезаписывается.
А нужно открывать файл в "режиме добавления"
file = open('file.txt', 'a')
Второй аргумент должен быть 'a'. Тогда файл будет ДОПОЛНЯТЬСЯ, а не перезаписываться. И будут сохраняться все процессы.