Python读取某个时间点之后的日志

python 复制代码
import time
import re

def date_time_float(time_str, time_format=None):
    time_stamp = 0
    if len(time_str) > 24:
        time_str = time_str[:24]
    try:
        if time_format is None:
            time_format = '%Y-%m-%d %H:%M:%S'
            if 'T' in time_str:
                time_format = '%Y-%m-%dT%H:%M:%SZ'
        ms_float_time = 0
        s_time = time_str.split('.')[0]
        if '.' in time_str:
            ms_float_time = float(time_str.split('.')[-1]) / 1000.0
        time_stamp = time.mktime(time.strptime(s_time, time_format)) + ms_float_time
    except:
        pass
    return time_stamp

temp_str = '''2024-07-17 17:51:16.790 <142> [2024-7-17 17:51:23.91844][PID2615][ffffffff][L2S][info]L2S_RrcProcPhyFraNumInfo: 876:[0,1207,17908]  PhyFraNum:0 next pos
2024-07-17 17:51:17.212 <134> [2024-7-17 17:51:23.522884][PID2652][ffffffff][OM][info]FPGAM_Task:1772:[0,1207,18339]  FPGAM Module resaved message!
2024-07-17 17:51:18.366 <142> [2024-7-17 17:51:24.671879][PID2615][ffffffff][NAS][info]nas_timer_stop: 301:[0,1207,19488]  MM-PROC  - Stop timer id (998638)
2024-07-17 17:51:19.219 <134> [2024-7-17 17:51:25.208775][PID2641][10000016][MSGTRACE][info]PFM_MsgTask:1867:[0,1207,20025]  TASK_OAM_PFM Received message 0x1000
2024-07-17 17:51:20.383 <142> [2024-7-17 17:51:26.691849][PID2615][ffffffff][NAS][info]nas_timer_stop: 301:[0,1207,21508]  MM-PROC  - Stop timer id (1118223)
2024-07-17 17:51:21.397 <139> [2024-7-17 17:51:27.701906][PID2615][0][MOS][error]MOS_TimerDelete: 496:[0,1207,22518]  TIMER ID 1194679 ERROR! not match 0
2024-07-17 17:51:22.406 <139> [2024-7-17 17:51:28.711897][PID2615][0][MOS][error]MOS_TimerDelete: 496:[0,1207,23528]  TIMER ID 1300996 ERROR! not match 0
2024-07-17 17:51:27.642 <142> [2024-7-17 17:51:28.712523][PID2615][ffffffff][NAS][info]nas_timer_start: 268:[0,1207,23529]  create nas timer (1373732)'''

ori_list = temp_str.split('\n')
start_time = '2024-07-17 17:51:21.397'
start_time_stamp = date_time_float(start_time)
dst_list = []
for line in ori_list:
    pattn = re.compile('(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3})')
    crt_line_time = re.findall(pattn, line)
    if crt_line_time:
        time_stamp = date_time_float(crt_line_time[0])
        if start_time_stamp <= time_stamp:
            print(line)

运行结果:

相关推荐
Lyn_Li14 小时前
扫描 PDF 歪了怎么办?用 6 种检测方法做本地批量扶正(附开源工具)
python·pdf·ocr·tesseract·开源工具·文档处理·本地处理·扫描件纠偏
金銀銅鐵14 小时前
费马小定理
python·数学·算法
疋瓞18 小时前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
程序员老油条19 小时前
WSL2 + Docker Desktop:Windows 下的完美 Java 开发环境
java·windows·docker·wsl2
如此这般英俊20 小时前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
元Y亨H20 小时前
Python - FastAPI 全方位介绍
python·fastapi
error:(1 天前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
weigangwin1 天前
LlamaIndex 第一次试用:别先写 RAG Demo,先验上下文合同
python·ai·agent·rag·检索·llamaindex·观测性
省四收割者1 天前
一文详解信号完整性(1)
python·嵌入式硬件·数学建模·信息与通信·信号处理·智能硬件
binbin_521 天前
Flutter 开发鸿蒙实战:Windows 环境下从 HAP 构建到四 Tab 页面运行
windows·flutter·harmonyos