運用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 python 2 # 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語言,小程序剛剛寫完感覺結構很冗余,分成一塊一塊的比較容易理解,感覺並不用把結果存進一個一個類里面,存到一個字典里面就可以(當時不是很熟悉字典),以后寫的獲取文件系統狀態就是用的字典保存的,先寫到這吧,慢慢寫。。。

第一次寫,希望大神多多提提意見~~~~~嘻嘻~~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM