运用Python语言编写获取Linux基本系统信息(一):获得Linux版本、内核、当前时间


申请博客有一段时间了,然而到现在还一篇没有写过。。。。。

主要因为没有想到需要写些什么,最近在学习Python语言,照着书上看了看最基础的东西,发现根本看不进去,而且光看的话今天看了觉得都理解懂了,过两天自己回顾这部分内容的时候发现就又忘了,于是自己就想到自己边学边写一些小程序,以便能更好的让自己记住语法。

一、开发环境以及测试环境

Python2.7.10、pycharm、VM虚拟机、CentOS6.3

二、代码实现

代码结构:

commands.py —> os_info_in.py —> os_info.py  |

                linux_status.py  |-->linux_status_main.py

实现:

commands.py:

实现在Python代码中运行Linux的命令,得到打印的结果集,并返回结果results

 

1 # coding=UTF-8
2 import os
3 class commands:
4 def __init__(self,comm):
5 self.commend=comm
6 def excute_command(self):
7 result = os.popen(self.commend)
8 results = result.readlines()
9 return results

 

os_info_in.py:

通过导入刚刚编写的commands.py模块来获取Linux的OS版本号,内核版本号,以及当前的时间。

记录:

eachLine.strip()去掉eachLine前后的空格
findall('Description:\t#(.*)',afind)搜寻与正则表达式相匹配的内容
 1 #!/usr/bin/env python
2 # coding=UTF-8
3 import commands
4 import re
5 class os_info_in:
6 def os_version(self):#获取linux的OS版本号
7 L_command = commands.commands('lsb_release -a')
8 comm=L_command.excute_command()
9 allLine = []
10 os_ver=''
11 for eachLine in comm:
12 allLine.append(eachLine.strip())
13 for afind in allLine:
14 if re.findall('Description:\t#(.*)',afind):
15 os_ver = re.findall('Description:\t#(.*)',afind)
16 return os_ver[0]
17 def os_kernel(self):#获取linux的内核版本
18 L_command = commands.commands('uname -r')
19 comm=L_command.excute_command()
20 allLine = []
21 for eachLine in comm:
22 allLine.append(eachLine.strip())
23 return allLine[0]
24 def os_date(self):#获取系统时间
25 L_command = commands.commands('date')
26 comm=L_command.excute_command()
27 allLine = []
28 for eachLine in comm:
29 allLine.append(eachLine.strip())
30 return allLine[0]

linux_status.py:

保存获取到的linux状态信息


1
#!/usr/bin/env python2 # coding=UTF-8
3 #保存linux状态信息
4 #os版本号:os_version
5 #内核版本号:os_kernal
6 #系统当前时间:os_date
7 class linux_status:
8 pass

 

os_info.py:

通过os_info_in.py获取到的linux状态信息保存到专门储存状态信息的类linux_status中并返回

 1 # coding=UTF-8
2 import linux_status
3 import os_info_in
4 class os_info:
5 def __init__(self):
6 self.linux_stat=linux_status.linux_status()
7 self.os_infos_in= os_info_in.os_info_in()
8 def os_info(self):
9 self.linux_stat.os_version = self.os_infos_in.os_version()
10 self.linux_stat.os_kernal = self.os_infos_in.os_kernel()
11 self.linux_stat.os_date = self.os_infos_in.os_date()
12 return self.linux_stat

 

linux_status_main.py:

测试主函数(打印所获取的信息)

 1 #!/usr/bin/env python
2 # coding=UTF-8
3 import linux_status
4 import os_info
5
6 #linux版本,内核,时间
7 linux=linux_status.linux_status()
8 os= os_info.os_info()
9 linux=os.os_info()
10 print '系统:',linux.os_version
11 print '内核:',linux.os_kernal
12 print '时间:',linux.os_date

 

三、结果展示

 

 

 

 

由于刚刚接触Python语言,小程序刚刚写完感觉结构很冗余,分成一块一块的比较容易理解,感觉并不用把结果存进一个一个类里面,存到一个字典里面就可以(当时不是很熟悉字典),以后写的获取文件系统状态就是用的字典保存的,先写到这吧,慢慢写。。。

第一次写,希望大神多多提提意见~~~~~嘻嘻~~~~

 

本站声明
本文转载自:http://www.cnblogs.com/soysaucejyz/p/5063843.html     作者:真亦假假亦真     发布日期:2015/12/21     本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。


 
© 2014-2017 ITdaan.com 粤ICP备14056181号