复制
收藏
提问
全网
除了内存,cpu使用状态,还能获取哪些状态? import psutil print((str(psutil.cpu_percent(1))) + '%') cpu_percent = psutil.cpu_percent(interval=1) cpu_info = "CPU使用率:%i%%" % cpu_percent print(cpu_info) cpu_percent = int(cpu_percent)/100 # 转换成数值 print(cpu_percent) virtual_memory = psutil.virtual_memory() # 内存信息 used_memory = virtual_memory.used/1024/1024/1024 free_memory = virtual_memory.free/1024/1024/1024 memory_percent = virtual_memory.percent memory_info = "内存使用:%0.2fG,使用率%0.1f%%,剩余内存:%0.2fG" % (used_memory, memory_percent, free_memory) print(memory_info) memory_percent = int(memory_percent)/100 # 转换成数值 print(memory_percent) 2.以上代码是否正确?请优化
3个月前
回答简洁
更专业一些
除了内存和CPU使用状态,还能获取哪些状态?
除了内存和CPU使用状态,还可以获取以下状态:
- 磁盘使用情况:包括磁盘的总容量、已用空间、剩余空间以及磁盘使用率。
- 网络状态:包括网络的上传和下载速度、网络接口的状态等。
- 进程信息:包括系统中所有进程的列表、每个进程的内存和CPU消耗等。
- 系统负载:系统在过去1分钟、5分钟和15分钟的平均负载情况。
- 电池状态:对于便携式设备,可以获取电池的剩余电量和充电状态。
代码优化建议
提供的代码片段用于获取CPU使用率和内存使用情况,基本是正确的。但是,可以进行一些优化以提高代码的可读性和效率:
- 避免重复计算:
cpu_percent
在计算后被转换成数值并打印,但这个数值没有被进一步使用。如果不需要这个数值,可以省略相关代码。 - 格式化输出:使用格式化字符串来输出信息,使输出更加清晰。
- 内存单位统一:内存的单位在输出时使用了G(千兆字节),但计算时使用的是GB(十亿字节),这可能会导致混淆。统一单位可以避免这种混淆。
优化后的代码示例:
import psutil
# 获取CPU使用率
cpu_percent = psutil.cpu_percent(interval=1)
print(f"CPU使用率:{cpu_percent}%")
# 获取内存信息
virtual_memory = psutil.virtual_memory()
used_memory_gb = virtual_memory.used / (1024 ** 3) # 转换为GB
free_memory_gb = virtual_memory.free / (1024 ** 3) # 转换为GB
memory_percent = virtual_memory.percent
memory_info = f"内存使用:{used_memory_gb:.2f}GB,使用率{memory_percent}%,剩余内存:{free_memory_gb:.2f}GB"
print(memory_info)
这个优化版本使用了f-string进行格式化输出,使代码更加简洁易读。同时,去除了不必要的数值转换,并且统一了内存单位。