问题:解决如何在python中对表格(二维)进行排序?例如,按照cpu或mem的使用率对top中的进程排序

解决方法:
1. 使用numpy或者panda中的方法对二维矩阵进行操作
2. 使用二维数组(list)存储表格,然后按照某一列排序

下面实现方法二
假设top信息存在于与脚本同目录的txt文件中。具体信息如下:

step1:将文本内容读入list存放

#!/usr/bin/env python3
# -*- coding: utf-8 -*-lines = []
#read txt file line by line and stored in list
with open('top_info.txt', 'r') as f:lines = f.readlines()print(len(lines))print("initialize arrays:")
lines_len = len(lines) - 7       #info need to process
cols_name = [i for i in lines[6].split()]
arrays = [[0 for i in lines[6].split()] for i in range(lines_len)]                #initialize matrixprint(cols_name)
print(len(arrays))
print(*arrays, sep='\n')   #print element in multi lines

运行结果:

step2 : 将要处理的几行信息单独存储

#gets into needs to process
for i in range(7, len(lines)):arrays[i-7] = lines[i].split()print(arrays[0])
print(arrays[1])
print(arrays[2])

运行结果:

step3 : 按照cpu和mem的使用率排序,降序

关键代码:

from operator import itemgetterprint("sort info:")
#cpu_row = [row[8] for row in arrays]
arrays_sorted_by_cpu = sorted(arrays, key=itemgetter(8), reverse = True)
print(*arrays_sorted_by_cpu, sep='\n')

运行结果:

完整代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from operator import itemgetterlines = []
#read txt file line by line and stored in list
with open('top_info.txt', 'r') as f:lines = f.readlines()print("the top info in doc is: \n")
print(*lines, sep='\n')lines_len = len(lines) - 7       #info need to process
arrays = [[0 for i in lines[6].split()] for i in range(lines_len)]#gets into needs to process
for i in range(7, len(lines)):arrays[i-7] = lines[i].split()print("sort info:")
arrays_sorted_by_cpu = sorted(arrays, key=itemgetter(8), reverse = True)
print(*arrays_sorted_by_cpu, sep='\n')

运行结果:


推荐阅读:
知乎:python二维数组按照某一列进行筛选统计?

http://stackoverflow.com/questions/32400639/python-readline

http://stackoverflow.com/questions/5212870/sorting-a-python-list-by-two-criteria

http://stackoverflow.com/questions/4233476/sort-a-list-by-multiple-attributes

http://stackoverflow.com/questions/20183069/how-to-sort-multidimensional-array-by-column

http://stackoverflow.com/questions/2173797/how-to-sort-2d-array-by-row-in-python

http://stackoverflow.com/questions/8609737/python-comparing-two-massive-sets-of-data-in-the-most-efficient-method-possible

http://stackoverflow.com/questions/4183506/python-list-sort-in-descending-order

http://stackoverflow.com/questions/16326529/python-get-process-names-cpu-mem-usage-and-peak-mem-usage-in-windows

python 按照cpu的使用率对top中的进程排序(排序表格)相关推荐

  1. linux的mysql占用cpu过高_linux 系统中Mysql 进程占用cpu过高的解决

    mysql进程CPU使用率过高,开始报警了. 为了快速解决问题直接重启mysql服务后,再查sysql进程CPU使用率依旧高居不下.故障还没有解决,继续寻找原因. 3.登陆mysql数据库,执行sho ...

  2. Linux中Python应用CPU占用高问题排查

    公司购买了一套由外部供应商提供的呼叫中心系统,在使用的过程中发现其LOAD和CPU占用偏高,由于没有源代码也不太清楚其内部的实现逻辑,只能够通过观察系统资源的消耗来排除其问题,以下记录的是问题排查的过 ...

  3. Android系统中的进程管理:进程的优先级

    本文是Android进程管理系列文章的第二篇,会讲解进程管理中的优先级管理. 进程管理的第一篇文章:<进程的创建>请跳转至这里. 本文适合Android平台的应用程序开发者,也适合对于An ...

  4. linux中的进程有哪三种基本状态,Linux下的进程有哪三种状态?()

    1.R (TASK_RUNNING)状态,可执行状态. 只有在该状态的进程才可能在CPU上运行.而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CP ...

  5. Linux中Python程序CPU占用高排查

    Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查,Linux中Python程序CPU占用高排查 kafka-python==2.0.2和 gevent 新版本 ...

  6. Android CPU使用率:top和dump cpuinfo的不同

    CPU是系统非常重要的资源,在Android中,查看CPU使用情况,可以使用top命令和dump cpuinfo.我记得很久以前,就发现这两者存在不同,初步猜测应该是算法上存在差异.最近需要采集应用C ...

  7. php查看CPU信息,Linux_Linux中如何查看CPU的信息,top命令是Linux下常用的性能分 - phpStudy...

    Linux中如何查看CPU的信息 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. top - 02: ...

  8. 解决linux中Kipmi0进程对CPU使用率很高问题

    突然top发现Kipmi0进程一直占用近乎100%的一个核的资源,并且已经持续了很长一段时间. google查不到多少资料,看到一篇说法:是一些平台接口的管理器.不敢贸然杀死,再查查资料. 看看专业的 ...

  9. 用于Python中的进程和系统监视的跨平台库psutil

    最近平台运行,出现一些问题,考虑如何设置监控.发现一个Python库,感觉非常实用.分享一下. psutil(Process and system实用程序)是一个跨平台库,用于检索运行过程和系统利用( ...

最新文章

  1. 总结 | 一些关于 CPU 的基本知识
  2. JDBC高级特性3--JNDI,连接池,分布式事务
  3. python基础知识理解
  4. Nginx隐藏PHP入口文件index.php
  5. 潮美之夜见证“夜拍王”诞生,荣耀10 GT照亮三里屯
  6. python如何控制程序_Python 控制程式执行流程
  7. DevExpress v17.2新版亮点—Analytics Dashboard篇(一)
  8. 在计算机系统中使用加载器,在个人计算机系统中从软盘加载基本输入/输出系统的设备和方法...
  9. android手机误删通讯录恢复
  10. green: JRE + Tomcat + Mysql - JaveEE JTM0.9
  11. text——Android下的默认字体详解
  12. linux关闭防火墙时出现问号乱码,linux文件名乱码问题的解决方...-tcp_wrappers防火墙配置方法-su 与 su - 的比较_169IT.COM...
  13. linux代码折叠,Ubuntu中gedit中插件的安装之代码折叠插件
  14. ThinkPad T61 X61安装XP系统的方法及xp驅動下載
  15. PHP 3D大富翁,大富翁3D版 Monopoly Classic HD
  16. 使用Clonezilla进行P2V,备份还原完整过程
  17. 数据库规范设计说明书
  18. 淘宝双11大数据分析(数据准备篇)
  19. matlab多元回归模型分析,matlab多元回归工具箱 Excel数据分析工具进行多元回归分析.doc...
  20. PPT转换成PDF后文档的背景色没有了怎么办?

热门文章

  1. Java金典题目 -- 狼追兔子(环形)
  2. 插画师入门技巧:青丛怎么画?5步教你学会画草丛!
  3. Linux userdel
  4. 打印机用计算机名慢,打印机打印文件特别慢怎么办_打印机打印文件特别慢如何解决-系统城...
  5. Hive - distinct group by 求 UV,PV 实战
  6. CISCO无线AP如何配置
  7. 全面理解Java内存模型
  8. 【ICCV 2019】Self-similarity Grouping: A Simple Unsupervised Cross DA Approach for Person Re-id(SSG)
  9. javaweb JAVA JSP购物系统jsp销售系统 (jsp电子商务系统,购物商城)甜品蛋糕在线购物系统案例
  10. PMBOK(第六版) PMP笔记——《二》第二章 项目运作环境