1、python檔案讀寫練習
今天學習了python的檔案讀寫功能,練習一下。
'''
功能:將日誌的內容按照相機ID進行分組顯示
時間:2016-05-26
'''
#開啟原日誌檔案
fp = open(r'log.txt')
#建立新檔案用於存放日誌整理後的結果
fs = open(r'result.txt','w')
#宣告一個字典,用於存放日誌裡的內容
d = {}
#遍歷原日誌檔案的
for line in fp.readlines():
#如果讀取的行內容包含'error',則直接進入下一次迴圈
if line.find('error') != -1:
continue
#將讀取的行按照':'進行分割
r = line.split(':')
#r[3]是相機的ID號
key = r[3]
#判斷字典中是否含有該相機ID號,
#如果含有則直接將行新增到值中
#否則增加該相機ID的key和value
if key in d.keys():
d[key].append(line)
else:
d[key] = [line]
#遍歷字典並將內容寫到新的檔案中
for key in d.keys():
fs.writelines('\n' + '*' * 30 + ' ' + key + ' ' + '*' * 30 +'\n')
for i in range(len(d[key])):
s = str(d[key][i])
fs.writelines(s)
#關閉檔案
fs.close()
fp.close()
'''
舉例:
原日誌內容樣式:
[2016-05-23 15:50:54]:262147(2903-H-4):總空間:1942,已用:1229,剩餘:713, 預計剩餘儲存7天,ok.
[2016-05-23 15:50:54]:262149(2904-C-5):總空間:2802,已用:0,剩餘:2802, 預計剩餘儲存17天,ok.
[2016-05-23 15:50:55]:262151(2901-H-6):總空間:1737,已用:1195,剩餘:542, 預計剩餘儲存6天,ok.
[2016-05-23 15:50:55]:262153(2902-S-7):總空間:1737,已用:1195,剩餘:542, 預計剩餘儲存6天,ok.
[2016-05-23 15:50:55]:262155(2801-H-8):總空間:1737,已用:1218,剩餘:519, 預計剩餘儲存6天,ok.
[2016-05-23 15:50:55]:262157(2907-C-9):總空間:2802,已用:310,剩餘:2492, 預計剩餘儲存16天,ok.
......
整理後的內容樣式:
****************************** 262231(2832-G-46) ******************************
[2016-05-23 15:51:05]:262231(2832-G-46):總空間:1629,已用:1057,剩餘:572, 預計剩餘儲存7天,ok.
[2016-05-23 15:53:57]:262231(2832-G-46):總空間:1629,已用:1057,剩餘:572, 預計剩餘儲存7天,ok.
****************************** 262207(2836-G-34) ******************************
[2016-05-23 15:51:02]:262207(2836-G-34):總空間:1629,已用:1058,剩餘:571, 預計剩餘儲存7天,ok.
[2016-05-23 15:53:54]:262207(2836-G-34):總空間:1629,已用:1058,剩餘:571, 預計剩餘儲存7天,ok.
'''