python中 什么是top

Python017

python中 什么是top,第1张

Python是一种高级的程序设计语言。

如果你用过basic、VB那么你可以将它认为是在各种平台下的basic,因为它像basic一样简单易学,但是它也不同于basic,最在的不同,当然是python的功能强大和它的优秀设计了,最重要的是它是开放源代码产品,使用它开发的程序不必为许可证而烦恼了。要知道当年比尔曾经以500美元的天价发放BASIC的使用许可证呢。然后basic能够做到的事情实在是太少了。包括今天的VB它能够做到的事情也是很有限的。而Python,你根本不用怀疑它的功能,网络编程,web程序程序设计,游戏编程,图像编程,数据库编程,所有的编程领域你都可以找到它的身影。总而言之:Python是一种高级的程序设计语言,它也是一种面向对象的程序设计语言,它可以帮我们快速的解决我们的枯燥的编程工作。

Python, perl ,php:

perl一直是UNIX系统管理员的利器,当然这最得益于它的文本处理强大功能和CPAN这个网络提供了各行各业的相应的解决方案了,它一直是黑客最喜欢的语言。它简练,功能强大,但是写的程序非常的难懂。而且支持多线程并不理想,用perl并不是写大型程序的最好选择,有人会当机,但是我没有试验过。现在有了python,UNIX系统管理员和UNIX应用系统开发人员就多了一种选择了,加载re模块,python同样可以处理复杂文本需求。php这门语言也是我的最爱,它和python一样简单,甚至要更简单,因为它专注于web开发,这一点我想是值得肯定的。无论是perl,python,java或者是asp比起php(在开发web领域方面)它们都是大大的不如。有人说java好,我想这是不一定的。之所以说java好,是因为有很多的大软件公司支持它,有相应的解决方案,但是在开发效率和稳定性上java不一定就比php强多少,有人批评说php对oop支持不好,其实oop不一定是解决问题的最好办法。而且随着php5的推出,java在oop方面的优势几乎是不存存了。而java赖以成名的跨平台更是可笑:php,perl,python的跨平台特性都比java强了不知道多少。

python subprocess.Popen遇到top等命令怎么处理

有两种方式:

1、直接使用python xxxx.py执行。其中python可以写成python的绝对路径。使用which python进行查询。

2、在文件的头部(第一行)写上#!/usr/bin/python2.7,这个地方使用python的绝对路径,就是上面用which python查询来的结果。然后在外面就可以使用./xxx.py执行了。

因为在linux中,python啊shell这些程序都是普通的文本格式,都需要一种程序去解释执行它。要么调用的时候指定,要么在文件头指定。

问题:如何在linux上通过python脚本获取命令行的显示结果来进行处理?

解决方法:

1. python2.7版本有commands包

2. python3.x版本使用subprocess

下面是使用python3.4版本的示例

前面已解决使用python脚本选出top命令中cpu使用率最高的进程,现在解决如何获取top命令的回显信息。

在linux mint上执行top命令,可以看到不断刷新的top信息。使用top -n 1 可以看到某一时刻的top信息:

对应的代码实现是:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import subprocess

#

#variable 'out' is subprocess output info

top_info = subprocess.Popen(["top", "-n", "1"], stdout=subprocess.PIPE)

out, err = top_info.communicate()

#output info get from console has many unicode escape character ,such as \x1b(B\x1b[m\x1b[3949m\x1b[K\n\x1b(B\x1b[m

#use decode('unicode-escape') to process

out_info = out.decode('unicode-escape')

print(out_info)

lines = []

lines = out_info.split('\n')12345678910111213141516171819

运行结果:

ps:如果没有处理unicode-escape,得到的运行结果将是: