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

如何按索引位置解析文本文件提取指定值、追加至列表并转换为Pandas DataFrame

按索引解析文本并转换为Pandas DataFrame解决方案

嘿,我来帮你搞定这个按位置解析文本、转成DataFrame的需求!先看看你现有代码里的几个小问题,再给你修正后的完整实现:

现有代码的问题

  1. 循环逻辑不对:你的文本只有两行(表头+body),但你循环遍历了所有行,而且body里是多条重复的记录,你当前只提取了body的第一个100字符段,没处理后面的条目。
  2. 语法错误:data列表里的"filler引号没配对,还有tc_recusa应该和headers里的tx_recusa保持一致。
  3. 缺少数据收集逻辑:你没有把每次提取的单条数据添加到总列表里,最后没法生成DataFrame。

修正后的完整代码

import pandas as pd

# 定义列名,和你需求一致
headers = ["data_mov", "chave_detalhe", "cpf_cliente", "cd_clube", "cd_operacao", "filler", "cd_retorno", "tx_recusa"]

# 读取文本文件
with open('RCPF0491.20210407.1609.txt', "r") as f:
    linhas = [linha.rstrip() for linha in f.readlines()]

# 从表头提取日期(索引18:26)
data_mov = linhas[0][18:26]

# 处理body部分:按每条记录100字符拆分(根据你提取的索引[0:100]判断每条记录长度为100)
body_content = linhas[1]
# 拆分body为多个记录,每100个字符一条
records = [body_content[i:i+100] for i in range(0, len(body_content), 100)]

# 收集所有数据行
data_list = []
for record in records:
    # 按索引提取每个字段
    chave_detalhe = record[0:1]
    cpf_cliente = record[1:12]
    cd_clube = record[12:16]
    cd_operacao = record[16:17]
    filler = record[17:40]
    cd_retorno = record[40:42]
    tx_recusa = record[42:100].strip()  # 去掉首尾空格,让结果更干净
    
    # 组装成一行数据,添加到列表
    data_row = [data_mov, chave_detalhe, cpf_cliente, cd_clube, cd_operacao, filler, cd_retorno, tx_recusa]
    data_list.append(data_row)

# 转换为Pandas DataFrame
df = pd.DataFrame(data_list, columns=headers)

# 查看结果
print(df)

预期输出结果

运行代码后,你会得到如下格式的DataFrame:

data_movchave_detalhecpf_clientecd_clubecd_operacaofillercd_retornotx_recusa
202104071927907801100032G(原文本对应位置的空格)00sucess
202104071067697546140032G(原文本对应位置的空格)00sucess
202104071053756666000032G(原文本对应位置的空格)00sucess
202104071321723368900032G(原文本对应位置的空格)00sucess
202104071037673956810032G(原文本对应位置的空格)00sucess

关键说明

  • 拆分body记录:根据你提取字段的索引范围,每条记录长度正好是100字符,所以用range(0, len(body_content), 100)来拆分。如果后续记录长度有变化,只需要调整这个步长就行。
  • 字段清洗:给tx_recusa加了.strip()去掉首尾空格,避免结果里带多余的空白。
  • 数据收集:用data_list来存储所有行数据,最后一次性转成DataFrame,效率更高。

内容的提问来源于stack exchange,提问作者Jayron Soares

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:37:34