[英]Extract Specific Data from Txt file python
我有一個 txt.fil(服務器日志),只想從中提取某些字段並將其寫入 csv:
Date=2021-01-04 23:45:47.131 interaction=basic id=12333 personalid=11117 tisract=jinx fabrics=xyz session_id=adsflkixx endpoint=tool/tac/product/case
基本上有數百萬行這樣
我怎樣才能只從 txt 文件中提取日期、ID 和端點並將其轉換為字典,然后再轉換為數據框?
名稱重復,值不斷變化,所以我想將名稱保留為 header,將值保留為數據行。
我建議使用更合適的工具,如 ELK Stack 進行日志解析,但如果你想使用 Python...
使用正則表達式
import re
import csv
regex = r"^Date=(\d{4}-\d{2}-\d{2} (?:\d{2}:){2}\d{2}\.\d{3})\W.*\sid=(\d+).*\sendpoint=(.+)$"
with open('log.txt') as f, open('out.csv', 'w') as f_out:
fields = ["Date", "id", "endpoint"]
writer = csv.DictWriter(f_out, fieldnames=fields)
writer.writeheader()
for line in f:
matches = re.finditer(regex, line, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
data = {fields[groupNum]: match.group(groupNum + 1) for groupNum in range(len(match.groups()))}
writer.writerow(data)
樣品 output
$ cat out.csv
Date,id,endpoint
2021-01-04 23:45:47.131,12333,tool/tac/product/case
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.