1. 程式人生 > >1、python檔案讀寫練習

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.

'''