如何编写Python控制台程序可以像Linux中的top命令一样输出?

时间:2011-12-17 15:31:34

标签: python

Linux中top命令的输出如下:

  

任务:158总计,1跑,157睡,0停,0僵尸   Cpu(s):6.3%us,3.2%sy,0.0%ni,89.9%id,0.2%wa,0.0%hi,0.2%si,   0.0%st Mem:8264212k总计,2637492k使用,5626720k免费,299884k缓冲交换:总共4192924k,0k使用,4192924k免费,   2010332k缓存

     

PID用户PR NI VIRT RES SHR S%CPU%MEM TIME + COMMAND
  7178 mysql 15 0 52876 31m 4680 S 21.3 0.4 308:12.04 mysqld
  2262 www 16 0 28092 11m 4764 S 4.0 0.1 2:02.31 php-cgi
  2110 www 16 0 27956 11m 4888 S 3.7 0.1 2:04.51 php-cgi
  2005 www 16 0 28680 12m 4872 S 3.0 0.2 2:04.10 php-cgi
  1955年www 16 0 28476 12m 5220 S 2.7 0.1 2:06.51 php-cgi
  2030 www 16 0 28260 11m 4872 S 2.0 0.1 2:05.27 php-cgi
  7044 www 15 0 24348 19m 932 S 0.7 0.2 1:58.38 nginx

只有部分内容不断变化。

我只输出一行不断更新而不换行:

import  sys
import  time

if __name__ == '__main__':
    i = 0
    while True:
        sys.stdout.write('i = %d.\r' % i)
        sys.stdout.flush()
        time.sleep(1)
        i += 1

我想知道如何像top命令一样输出多行(在没有换行的情况下不断变化)。

抱歉,我的英语很差。希望这是有道理的。

谢谢, 齐

1 个答案:

答案 0 :(得分:6)

您需要使用库来处理与控制台的交互,例如: http://docs.python.org/howto/curses.html