import re
import csv
from datetime import datetime
def main():
log_file_path = input("请输入日志文件路径: ")
output_file_path = input("请输入输出文件路径: ")
with open(log_file_path, 'r') as file:
log_content = file.readlines()
log_pattern_1 = re.compile(r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3})>>>>>> 售后标定开启成功!')
log_pattern_2 = re.compile(
r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3})>>>>>> 水平角度:([-+]?\d+\.\d+) 纵向角度:([-+]?\d+\.\d+)')
data = []
start_time = None
for line in log_content:
match_1 = log_pattern_1.match(line)
match_2 = log_pattern_2.match(line)
if match_1:
start_time = datetime.strptime(match_1.group(1), '%Y-%m-%d %H:%M:%S.%f')
print(f"Timestamp: {start_time}, Message: 售后标定开启成功!")
if match_2:
timestamp, horizontal_angle, vertical_angle = match_2.groups()
timestamp = datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S.%f')
if start_time:
time_diff = (timestamp - start_time).total_seconds() / 60
else:
time_diff = 0
data.append((len(data) + 1, float(horizontal_angle), float(vertical_angle), round(time_diff, 2)))
with open(output_file_path, 'w', newline='', encoding='utf-8') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(['number', 'Horizontal', 'longitudinal', 'time'])
csvwriter.writerows(data)
print(f"数据已成功写入 {output_file_path} 文件。")
if __name__ == "__main__":
main()
```python
日志文件结构
2025-03-05 09:52:00.565>>>>>> 成功 =219
2025-03-05 09:52:04.603>>>>>> 售后标定开启成功!
2025-03-05 09:52:06.196>>>>>> ---------标定信息--------
2025-03-05 09:52:06.205>>>>>> 标定状态:例程已激活
2025-03-05 09:52:06.212>>>>>> 标定结果:未获得标定结果
2025-03-05 09:52:06.214>>>>>> 标定进度:0 %
2025-03-05 09:52:06.218>>>>>> 标定失败原因:无效结果
2025-03-05 09:52:06.223>>>>>> 水平角度:0 纵向角度:0
2025-03-05 09:53:25.763>>>>>> ---------标定信息--------
2025-03-05 09:53:25.767>>>>>> 标定状态:例程成功完成
2025-03-05 09:53:25.771>>>>>> 标定结果:标定结果正确
2025-03-05 09:53:25.778>>>>>> 标定进度:100 %
2025-03-05 09:53:25.781>>>>>> 水平角度:0.47 纵向角度:-0.41
从标定开始到标定成功为一个周期