python 關於字典結構輸出
阿新 • • 發佈:2019-01-28
在近期的專案中,老大要求做一個工具,根據關鍵字抓取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()