如何用代码实现: 使用top命令获得线程的Cpu占用率,并保存到文件
时间: 2024-10-22 22:26:51 浏览: 36
在Linux系统中,直接从`top`命令获取CPU占用率并将其保存到文件通常是不可能的,因为`top`本身不是一个标准的脚本命令或API,它的输出通常是即时的,并非持久化的。不过你可以利用其他命令配合脚本来实现这个需求。
一种常用的方法是结合`ps`和`grep`命令,以及`awk`解析输出。以下是一个Python示例,假设你想获取每个进程(包括其线程)的CPU占用率并写入文件:
```python
import subprocess
def get_cpu_usage_to_file(output_filename):
# 获取所有进程的CPU使用率
process = subprocess.Popen(['ps', '-eo', 'pid,cmd,%cpu'], stdout=subprocess.PIPE)
output, _ = process.communicate()
with open(output_filename, 'w') as f:
for line in output.decode().split('\n'):
if not line or line.startswith('PID'): # 首行是表头,跳过
continue
fields = line.split()
try:
# 计算第3个字段(%cpu)作为CPU使用率
cpu_usage = float(fields[2])
# 写入文件
f.write(f"{fields[0]} {fields[1]} {cpu_usage}\n")
except ValueError:
pass # 如果无法转换为浮点数,忽略该行
# 生成一个名为"thread_cpu_usage.txt"的文件
get_cpu_usage_to_file("thread_cpu_usage.txt")
阅读全文