如何编写一个Python控制台程序,输出类似于Linux的top命令?
在Linux系统中,使用top命令可以看到类似下面的输出:
任务总数:158个,其中1个正在运行,157个处于休眠状态,0个被停止,0个是僵尸进程。
CPU使用情况:用户占用6.3%,系统占用3.2%,优先级占用0.0%,空闲占用89.9%,等待占用0.2%,硬件中断占用0.0%,软件中断占用0.2%,偷取占用0.0%。
内存情况:总共8264212k,已使用2637492k,剩余5626720k,缓存299884k。
交换区情况:总共4192924k,已使用0k,剩余4192924k,缓存2010332k。进程ID 用户名 优先级 nice值 虚拟内存 实际内存 共享内存 状态 CPU占用率 内存占用率 运行时间 命令
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命令那样输出多行内容(不断变化而不换行)。
抱歉,我的英语不好。希望这样说能让你明白。
谢谢,
Qi