1. 程式人生 > >python 關於字典結構輸出

python 關於字典結構輸出

在近期的專案中,老大要求做一個工具,根據關鍵字抓取log包中的對應資訊。眾所周知log中的資訊一般類似於a:b的形式,一開始做的時候,我很納悶,怎麼將一句話擷取,並挑選出有用的資訊。但當我意識到log中資訊的排列方式時,我才想到用字典的形式是比較適當的方法。首先利用正則表示式,將關鍵字正則化,並在逐行掃描中,定位到含有其中關鍵字的那句話。再利用字典結構,將資訊轉化為鍵和值的形式,以此類推我們不僅可以定位到關鍵句,還可以將關鍵資訊提取出來,想要什麼資訊,直接將鍵值打印出來即可。

workbook = xlsxwriter.Workbook('test3.xlsx')
worksheet = workbook.add_worksheet()


def create_event_item(mat):#資料以字典結構儲存
    eventitem = {}
    for k,trfunc in event_template.items():
        eventitem[k] = trfunc(mat.group(k))
    return eventitem

for i in vol:
    re_key_word = re.compile(i)
    test_log = AnyFileOpener(r'C:\Users\EEMAWNN\Documents\python\BTS_78_6447_L26T_logfiles.zip','teread.log')
    for line in test_log:
        
        line = line.rstrip()
        
        mat = re_key_word.search(line)
        pat = re_second.search(line)         
        if (mat):
            if(pat):
             emat = re_tracehead.match(line)
             if emat:
                    
                     item = create_event_item(emat)
                     bodycoll = [emat.string[emat.end():],] 
                     msg = "".join(bodycoll)
                     key_word = "".join(i)
                     worksheet.write(num,0,item['timestamp'])
                     worksheet.write(num,1,key_word)
                     worksheet.write(num,2,dic1[i])
                     worksheet.write(num,3,dic2[i])
                     worksheet.write(num,4,msg)
                     print(item['timestamp'])
                     print(bodycoll)                         
                     num = num +1
                     
workbook.close()