python——任务管理器进程相关操作

一、根据进程名获取PID

import psutil

def get_pid_by_name(process_name):
    for process in psutil.process_iter(['pid', 'name']): # 遍历任务管理器所有进程
        if process.info['name'] == process_name: # 如果找到满足的进程名,返回其pid,否则继续遍历
            return process.info['pid']
    return None

process_name = 'chrome.exe'
pid = get_pid_by_name(process_name)
if pid:
    print(f"进程 {process_name} 的pid为 {pid}")
else:
    print(f"进程 {process_name} 不存在")

二、判断服务是否存在并running

import psutil

service_list = ["epcf_dp_svc", "epcf_fcm_svc", "epcf_mp_svc"] # 列出一个想要查找的服务名列表

for service in service_list: # 遍历列表
    find_service = psutil.win_service_get(service) # 看服务是否存在
    if find_service and find_service.status() == psutil.STATUS_RUNNING: # 如果存在并且状态为running
        print(f"服务 {service} 存在并running")
    else:
        print(f"服务 {service} 不存在或者未运行")

三、每固定间隔记录以下CPU及内存使用情况

1、获取整体的CPU及内存使用情况

import psutil
import time
import csv

# 创建一个csv文件
csv_file = "process_usage.csv" # csv文件名
csv_headers = ['时间', 'CPU占用率', '内存使用率']

# 打开csv文件,写入文件头
with open(csv_file, 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(csv_headers)

# 循环执行
while True:
    # 获取当前时间
    current_time = time.strftime("%Y-%m-%d %H:%M:%s", time.localtime())

    # 获取CPU使用率
    cpu_usage = psutil.cpu_percent()
    # 获取内存使用情况
    memory_usage = psutil.memory_percent()

    # 将数据写入csv文件
    with open(csv_file, 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([current_time, cpu_usage, memory_usage])

    # 等待10min一循环
    time.sleep(600)

2、获取指定进程的CPU及内存使用情况

import psutil
import time
import csv

# 创建一个csv文件
csv_file = "process_usage.csv" # csv文件名
csv_headers = ['时间', 'CPU占用率', '内存使用率']

# 打开csv文件,写入文件头
with open(csv_file, 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(csv_headers)

# 根据进程名获取PID
def get_pid_by_name(process_name):
    for process in psutil.process_iter(['pid', 'name']): # 遍历任务管理器所有进程
        if process.info['name'] == process_name: # 如果找到满足的进程名,返回其pid,否则继续遍历
            return process.info['pid']
    return None

process_name = 'chrome.exe'
pid = get_pid_by_name(process_name)
if pid:
    print(f"进程 {process_name} 的pid为 {pid}")
else:
    print(f"进程 {process_name} 不存在")

# 循环执行
while True:
    # 获取当前时间
    current_time = time.strftime("%Y-%m-%d %H:%M:%s", time.localtime())

    process = psutil.Process(pid)
    # 获取CPU使用率
    cpu_usage = process.cpu_percent()
    # 获取内存使用情况
    memory_usage = process.memory_percent()

    # 将数据写入csv文件
    with open(csv_file, 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([current_time, cpu_usage, memory_usage])

    # 等待10min一循环
    time.sleep(600)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值