Python-解析或读取具有不同字符串长度的文本文件
我的日志文件“.log”或“.txt”的内容(信息:以下数字为行):Python-解析或读取具有不同字符串长度的文本文件,python,parsing,text-files,string-length,Python,Parsing,Text Files,String Length,我的日志文件“.log”或“.txt”的内容(信息:以下数字为行): 发送事件[ts=19s(00:03:18.243);msg=com.[messageType=MessageOutputType{messageId=840,Before=0,After=0},relPosition=233,Position=0.99494372446684,Number=14,timestamp=-14588,segmentId=12,vehiclePos=Position{lon=0.0082285627
with open("filename.log") as fp:
lines = fp.readlines()
for line in lines:
if line.startswith('Sending Event'):
l = line[14:].replace('; msg=com.[messageType=MessageOutputType{', ',').replace(' ,vehiclePos=Position{', ', ').replace('}', '')
d = {i.strip().split('=')[0]: i.strip().split('=')[1] for i in l.split(',')}
print([d['ts'].split('s')[0], d['relPosition'] if 'relPosition' in d.keys() else '', d['segmentId']])
请注意,d
是一个包含所有变量的字典。您可以通过d['variable\u name
]访问和打印它们
输出:
['19', '233', '12']
['20', '234', '12']
['21', '', '12']
谢谢,但我得到了以下错误-->d={i.strip().split('=')[0]:i.strip().split('=')[1]用于l.split(',')}索引器中的i:列表索引超出范围。我忘了我也有没有以“发送事件”开头的行。我必须先找到以“发送事件”开头的行。我编辑了我的描述。好的,我已经更新了答案以过滤掉不同的行。