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

如何用Python将非表格格式的TXT报告转换为表格格式

解决方法

1. 拆分读取元数据与表格内容

前3行是元数据,后续为表格,可分开处理:

提取元数据中的dates值

先读取前3行,匹配并提取目标值(假设元数据格式为dates: 日期值,可根据实际格式调整):

import pandas as pd

# 读取前3行元数据
with open('R1.txt', 'r') as f:
    metadata = [line.strip() for line in f.readlines()[:3]]

# 提取dates值
dates = None
for line in metadata:
    if 'dates' in line.lower():
        dates = line.split(':')[1].strip()
        break

2. 读取并整理表格结构

之前用sep='delimiter'会把整行视为单列,需根据表格实际分隔符(如多空格、制表符)指定sep:

# 跳过前3行元数据,读取表格;若表格首行(原第4行)是表头,用header=0,否则用header=None
df = pd.read_csv('R1.txt', sep='\s+', skiprows=3, header=0)

3. 添加并填充dates列

将提取到的日期值批量填充到新列:

if dates:
    df['dates'] = dates

4. 批量处理多个TXT文件(可选)

若有大量文件,用循环实现批量处理:

import os

# 遍历目录下所有TXT文件
txt_files = [f for f in os.listdir('.') if f.endswith('.txt')]
all_data = []

for file in txt_files:
    # 提取当前文件的dates
    with open(file, 'r') as f:
        metadata = [line.strip() for line in f.readlines()[:3]]
    dates = None
    for line in metadata:
        if 'dates' in line.lower():
            dates = line.split(':')[1].strip()
            break
    # 读取表格并添加dates列
    df = pd.read_csv(file, sep='\s+', skiprows=3, header=0)
    df['dates'] = dates
    all_data.append(df)

# 合并所有数据
final_df = pd.concat(all_data, ignore_index=True)

注意事项

  • 根据表格实际分隔符调整sep:制表符用sep='\t',逗号用sep=','
  • 若元数据格式不是key: value,需修改提取逻辑(如按固定位置截取)
  • 若表格无表头,读取时用header=None,再通过df.columns = ['列1', '列2', ...]手动设置表头

内容的提问来源于stack exchange,提问作者Carlos de la Peña

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:35:19