You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将txt日志文件数据按字段拆分并导入为pandas DataFrame?

pandas拆分结构化日志生成DataFrame实现方法

直接上适配你日志格式的可运行完整代码:

import pandas as pd
import re

# 1. 定义日志匹配正则,完全适配你提供的日志结构
log_pattern = r'^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d+) - (\w+) - ThreadID: (\d+); Class: (\w+); Method: ([\w_]+); Line: (\d+); Comment: (.*)$'
# 2. 定义DataFrame列名,可根据需求自行修改
columns = ["日志时间", "日志级别", "ThreadID", "类名", "方法名", "代码行号", "备注"]

# 3. 读取日志文件并逐行解析
log_data = []
with open("你的日志文件路径.txt", "r", encoding="utf-8") as f:
    for line in f:
        # 去除每行首尾的*号、空白符、换行符,自动过滤空行
        cleaned_line = line.strip("* \n")
        if not cleaned_line:
            continue
        # 正则匹配提取对应字段
        match_res = re.match(log_pattern, cleaned_line)
        if match_res:
            log_data.append(list(match_res.groups()))

# 4. 生成DataFrame并做基础类型转换,方便后续分析
df = pd.DataFrame(log_data, columns=columns)
# 可选类型转换,不需要可以注释
df["日志时间"] = pd.to_datetime(df["日志时间"], format="%Y-%m-%d %H:%M:%S,%f")
df["ThreadID"] = df["ThreadID"].astype("int64")
df["代码行号"] = df["代码行号"].astype("int32")

# 输出前几行校验结果
print(df.head())

补充说明

  • 若后续日志字段有调整,仅修改正则匹配规则即可
  • 不符合格式的异常日志行默认会被过滤,需要留存的话可以在正则匹配失败的分支单独记录

内容的提问来源于stack exchange,提问作者Max Cooperman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:54:04