【python】获取系统信息及进程并分别保存txt

import psutil

# 获取并保存系统硬件信息到"系统信息.txt"
with open("系统信息.txt", "w", encoding="utf-8") as sys_info_file:
    memory_info = psutil.virtual_memory()
    sys_info_file.write(f"总内存: {memory_info.total / (1024.0 ** 3):.2f} GB\n")
    sys_info_file.write(f"可用内存: {memory_info.available / (1024.0 ** 3):.2f} GB\n")
    sys_info_file.write(f"已用内存: {memory_info.percent:.2f}%\n\n")

    cpu_percent = psutil.cpu_percent(interval=1)
    sys_info_file.write(f"\nCPU使用率: {cpu_percent:.2f}%\n")
    cpu_count_logical = psutil.cpu_count(logical=True)
    cpu_count_physical = psutil.cpu_count(logical=False)
    sys_info_file.write(f"逻辑CPU核心数: {cpu_count_logical}\n")
    sys_info_file.write(f"物理CPU核心数: {cpu_count_physical}\n\n")

    for part in psutil.disk_partitions():
        try:
            usage = psutil.disk_usage(part.mountpoint)
            sys_info_file.write(f"\n磁盘: {part.device}\n")
            sys_info_file.write(f"挂载点: {part.mountpoint}\n")
            sys_info_file.write(f"总空间: {usage.total / (1024.0 ** 3):.2f} GB\n")
            sys_info_file.write(f"已用空间: {usage.used / (1024.0 ** 3):.2f} GB\n")
            sys_info_file.write(f"剩余空间: {usage.free / (1024.0 ** 3):.2f} GB\n")
            sys_info_file.write(f"磁盘使用率: {usage.percent:.2f}%\n")
        except PermissionError:
            continue

# 收集进程信息到一个列表中,并按照CPU和内存占用率降序排列
process_data = []
for process in psutil.process_iter(['pid', 'name', 'exe', 'memory_info', 'cpu_percent']):
    try:
        pinfo = process.info
        exe_path = pinfo['exe']
        if exe_path is not None:
            exe_path = exe_path.replace("\\", "/")
        else:
            exe_path = "未知"

        mem_info = pinfo['memory_info']
        memory_usage_bytes = mem_info.rss
        total_memory = psutil.virtual_memory().total
        memory_usage_percent = (mem_info.rss / total_memory) * 100

        process_data.append((pinfo['pid'],
                            pinfo['name'],
                            exe_path,
                            memory_usage_bytes / (1024 ** 2),  # 转换为MB
                            memory_usage_percent,
                            pinfo['cpu_percent']))

    except (psutil.NoSuchProcess, psutil.AccessDenied, KeyError):
        continue

sorted_processes = sorted(process_data, key=lambda x: (-x[5], -x[3]))

# 获取并保存按占用率排序的进程信息到"进程信息.txt"
with open("进程信息.txt", "w", encoding="utf-8") as process_info_file:
    for pid, name, exe_path, memory_usage_mb, memory_usage_percent, cpu_percent in sorted_processes:
        process_info_file.write(f"进程ID: {pid}\n")
        process_info_file.write(f"进程名: {name}\n")
        process_info_file.write(f"执行路径: {exe_path}\n")
        process_info_file.write(f"内存占用量: {memory_usage_mb:.2f} MB\n")
        process_info_file.write(f"内存占用率: {memory_usage_percent:.2f}%\n")
        process_info_file.write(f"CPU占用率: {cpu_percent:.2f}%\n\n")

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值