Python 读取 Windows 进程信息并统计资源占用

```html Python 读取 Windows 进程信息并统计资源占用

Python 读取 Windows 进程信息并统计资源占用

在现代的系统管理中,监控和分析进程资源占用是一个非常常见的需求。Python 提供了强大的库支持,使得我们可以轻松地获取 Windows 系统中的进程信息,并对其进行统计和分析。本文将介绍如何使用 Python 读取 Windows 进程信息,并通过代码实现资源占用的统计。

所需库

为了完成这一任务,我们需要使用以下两个主要的库:

  • psutil:这是一个跨平台的库,用于检索系统信息,包括 CPU、内存、磁盘、网络等统计信息以及进程管理。
  • pywin32:这个库提供了对 Windows API 的访问,可以帮助我们更深入地操作 Windows 特定的功能。

首先,确保安装了这些库:

```bash pip install psutil pywin32 ```

读取进程信息

使用 psutil 库可以轻松地获取系统中的所有进程信息。下面是一个简单的示例代码,展示如何列出所有正在运行的进程及其基本信息。

```python import psutil def list_processes(): print("PID\tName\t\tCPU%\tMemory%\tStatus") for proc in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent', 'status']): print(f"{proc.info['pid']}\t{proc.info['name']}\t{proc.info['cpu_percent']:.1f}%\t{proc.info['memory_percent']:.1f}%\t{proc.info['status']}") if __name__ == "__main__": list_processes() ```

上述代码会输出每个进程的 PID(进程ID)、名称、CPU 占用百分比、内存占用百分比以及状态。

统计资源占用

接下来,我们将进一步扩展功能,统计所有进程的总 CPU 和内存占用,并找出占用资源最多的前几个进程。

```python import psutil import operator def top_resource_consuming_processes(n=10): processes = [] for proc in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent']): processes.append((proc.info['pid'], proc.info['name'], proc.info['cpu_percent'], proc.info['memory_percent'])) # Sort by total resource usage (CPU + Memory) processes.sort(key=lambda x: x[2] + x[3], reverse=True) print("Top Resource Consuming Processes:") print("PID\tName\t\tCPU%\tMemory%") for i in range(min(n, len(processes))): print(f"{processes[i][0]}\t{processes[i][1]}\t{processes[i][2]:.1f}%\t{processes[i][3]:.1f}%") if __name__ == "__main__": top_resource_consuming_processes(10) ```

这段代码会输出系统中占用资源最多的前 10 个进程的信息。

总结

通过使用 Python 的 psutil 库,我们可以非常方便地获取和分析 Windows 系统中的进程信息。这种方法不仅适用于个人电脑的性能监控,还可以集成到自动化运维工具中,帮助管理员更好地管理和优化系统的资源使用。

当然,这只是冰山一角。通过进一步扩展,你可以实现更多的功能,比如实时监控、告警机制、甚至自动化终止某些高资源占用的进程。

希望这篇文章对你有所帮助!如果你有任何问题或需要进一步的帮助,请随时联系我。

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值