申請博客有一段時間了,然而到現在還一篇沒有寫過。。。。。
主要因為沒有想到需要寫些什么,最近在學習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語言,小程序剛剛寫完感覺結構很冗余,分成一塊一塊的比較容易理解,感覺並不用把結果存進一個一個類里面,存到一個字典里面就可以(當時不是很熟悉字典),以后寫的獲取文件系統狀態就是用的字典保存的,先寫到這吧,慢慢寫。。。
第一次寫,希望大神多多提提意見~~~~~嘻嘻~~~~