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

如何使用Python从文本文件中提取两列数据并保存为CSV文件?

嘿,我看到你正在尝试把文本数据集转换成X、Y两列的CSV文件,咱们来调整下代码,让它精准实现你的需求~

调整CSV转换代码,实现X/Y两列存储

首先得指出现有代码的小问题:你用zip(*[lines] * 1)其实是把每一行单独打包成一个组,这样写入CSV后每行只有一个单元格,自然没法分成X和Y两列。咱们根据你的文本文件格式分两种情况来修改:


情况1:文本每行是X和Y的组合(比如用空格/逗号分隔)

如果你的insurance_dataset.txt里,每一行是用空格、逗号或其他分隔符连在一起的X和Y值(比如123 456或者123,456),可以用下面的代码:

import csv

# 读取文本并拆分X/Y对
with open('insurance_dataset.txt', 'r') as in_file:
    # 过滤空行+去掉每行首尾空白
    valid_lines = (line.strip() for line in in_file if line.strip())
    # 拆分每行内容为X和Y(这里默认按空白拆分,用逗号的话改成line.split(','))
    xy_pairs = (line.split() for line in valid_lines)

# 写入CSV文件
with open('dataset.csv', 'w', newline='') as out_file:
    writer = csv.writer(out_file)
    # 可选:写入表头,让CSV更清晰
    writer.writerow(['X', 'Y'])
    # 批量写入所有X/Y数据对
    writer.writerows(xy_pairs)

关键调整说明:

  • 用split()把每行拆分成两个元素,正好对应CSV的两列
  • 加上newline=''是为了避免Windows系统下写入CSV时出现多余空行
  • 表头行['X', 'Y']可以根据需要选择保留或删除

情况2:文本每两行对应一组X和Y(第一行X,第二行Y)

如果你的数据集是两行一组的结构,那只需要修改分组逻辑即可:

import csv
import itertools

with open('insurance_dataset.txt', 'r') as in_file:
    stripped = (line.strip() for line in in_file)
    lines = (line for line in stripped if line)
    # 每2行打包成一组,对应X和Y
    grouped = zip(*[lines] * 2)

with open('dataset.csv', 'w', newline='') as out_file:
    writer = csv.writer(out_file)
    writer.writerow(['X', 'Y'])
    writer.writerows(grouped)

这里只把原代码里的zip(*[lines] * 1)改成*2,就能把连续两行打包成一个元组,写入CSV后就是整齐的X/Y两列啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:51:47