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

求助:从特定格式TXT提取指定字段并规整输出至新TXT文件

解决方法

你的问题在于read_csv()是为CSV格式设计的,但你的文件每行是Python字典字符串(Python 2风格的Unicode字典),直接用CSV读取会把字典的键值对拆成零散列,导致格式混乱。下面是正确的处理方式:

步骤说明

  1. 逐行读取文件中的字典字符串,转换为真实的Python字典
  2. 提取指定的FirstName、LastName、Department字段
  3. 将整理后的数据按行列格式写入新文件

完整代码示例

import ast

# 定义要提取的目标字段
target_fields = ['FirstName', 'LastName', 'Department']

# 读取源文件并生成结果文件
with open('your_source_file.txt', 'r', encoding='utf-8') as f_in, open('output.txt', 'w', encoding='utf-8') as f_out:
    # 写入表头
    f_out.write('\t'.join(target_fields) + '\n')
    
    # 逐行处理每个字典条目
    for line in f_in:
        line = line.strip()
        if not line:
            continue  # 跳过空行
        # 将字符串格式的字典转为真实Python字典(兼容Python2的u前缀)
        employee_dict = ast.literal_eval(line)
        # 提取目标字段的值
        row_values = [employee_dict[field] for field in target_fields]
        # 写入行,用制表符分隔(可替换为逗号等其他分隔符)
        f_out.write('\t'.join(row_values) + '\n')

代码解释

  • ast.literal_eval():安全地将字符串形式的Python字面量(如字典)转换为真实对象,比eval()更安全,专门适配这类格式内容
  • 用制表符(\t)分隔字段,生成的文件是标准制表分隔格式,可直接用表格工具打开,也可替换为逗号,生成CSV格式
  • 跳过空行避免处理无效内容

最终输出效果

生成的output.txt内容如下:

FirstName	LastName	Department
Bob	Brown	Business
Jayden	Chan	Business

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:02:06