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

如何用Python提取文本数据并转换为指定CSV格式(保留多词部门名)

解决方法

你之前的代码会把所有空格替换成逗号,自然会拆分带空格的Department字段。要解决这个问题,核心是提前明确字段的位置规则(比如哪些字段是无空格的固定值,哪个位置是带空格的Department),然后针对性拆分。

假设你的文本数据格式是:每行包含「ID、姓名、Department、薪资」四个字段,其中ID、姓名、薪资都是无空格的单个值,Department是中间所有带空格的内容。比如文本内容示例:

101 Alice Team Sports Floor 60000
102 Bob Fitness Equipment 45000
103 Charlie Apparel 55000

以下是对应的Python示例代码,用标准库csv处理更规范,避免手动拼接出错:

import csv

# 输入文本文件路径和输出CSV路径
input_txt = "data.txt"
output_csv = "result.csv"

# 打开文件进行处理
with open(input_txt, 'r', encoding='utf-8') as txt_file, \
     open(output_csv, 'w', newline='', encoding='utf-8') as csv_file:
    
    # 初始化CSV写入器
    writer = csv.writer(csv_file)
    # 写入表头(如果需要的话)
    writer.writerow(["ID", "Name", "Department", "Salary"])
    
    # 逐行处理文本文件
    for line in txt_file:
        # 去掉首尾空白字符,然后按空格分割成列表
        parts = line.strip().split()
        if not parts:  # 跳过空行
            continue
        
        # 提取固定位置的字段
        emp_id = parts[0]
        emp_name = parts[1]
        salary = parts[-1]
        # 合并中间所有部分作为Department
        department = ' '.join(parts[2:-1])
        
        # 写入CSV行
        writer.writerow([emp_id, emp_name, department, salary])

代码说明

  • 用csv模块写入CSV,自动处理字段的逗号分隔,避免手动拼接可能出现的格式问题
  • split()默认按任意数量空格分割(包括多个连续空格、制表符),适合处理不规范的空格分隔
  • 通过parts[2:-1]提取中间所有元素,再用' '.join()合并,保留Department内部的空格
  • 跳过空行,避免处理无效数据

如果你的字段规则不同(比如Department在其他位置),只需要调整提取字段的索引即可。比如如果Department是最后一个字段,其他都是无空格值,那只需要把department = ' '.join(parts[2:]),再根据实际结构调整其他字段的提取逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:20:36