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

Python非Pandas实现:合并CSV列值为无逗号的单列

如何从CSV行提取指定列并合并为无逗号字符串?

我有一个大型CSV文件,每行数据格式如下:

s,0,6,8,9,2,-,3,6,2,8,7,1,0,n,.,c,s,v
s,0,5,9,6,0,-,3,6,7,0,1,6,0,n,.,c,s,v
s,1,9,0,5,5,-,3,6,1,5,5,8,6,n,.,c,s,v
s,2,8,0,7,9,-,3,2,5,1,8,2,7,n,.,c,s,v
s,0,0,5,6,5,-,3,3,4,0,5,7,0,n,.,c,s,v
s,3,0,3,4,8,-,3,5,9,1,2,2,6,n,.,c,s,v
s,0,3,8,8,9,-,3,7,3,1,0,2,5,n,.,c,s,v

我需要提取每行索引1至5的列值,合并为无逗号的字符串,最终输出格式如下:

06892 05960 19055 28079 00565 30348 03889

我尝试了以下代码但未成功:

import csv, os
with open ('/Desktop/case.csv','r') as h:
    reader = csv.reader(h)
    for row in reader:
        k = row[1:6]
        print(k)

执行后输出仍带逗号:

0,6,8,9,2
0,5,9,6,0
1,9,0,5,5
2,8,0,7,9
0,0,5,6,5
3,0,3,4,8
0,3,8,8,9

请问如何修改代码以实现无逗号的目标输出?


解决方案

问题出在你直接打印了列表对象row[1:6]——Python默认会用逗号分隔列表元素来输出。要得到你想要的格式,只需要两步调整:

  1. 把列表元素拼接成无分隔符的字符串:用''.join()方法,它会把列表里的每个元素直接连在一起,不会添加任何分隔符。
  2. 收集所有结果并按空格拼接输出:不要每行单独打印,而是把所有拼接好的字符串存到一个列表里,最后用空格连接成一行输出。

修改后的代码如下:

import csv

# 注意:确保文件路径正确,比如Mac系统可能需要写成 '/Users/你的用户名/Desktop/case.csv'
with open('/Desktop/case.csv', 'r') as h:
    reader = csv.reader(h)
    # 用来存储每行的拼接结果
    output_parts = []
    for row in reader:
        # 提取索引1-5的元素,拼接成连续字符串
        merged_part = ''.join(row[1:6])
        output_parts.append(merged_part)
    # 用空格把所有结果连接成一行并打印
    print(' '.join(output_parts))

代码细节说明

  • ''.join(row[1:6]):将row[1]到row[5]的5个字符串元素直接拼接,比如['0','6','8','9','2']会变成'06892'。
  • output_parts.append(merged_part):把每一行的拼接结果存到列表里,避免逐行打印导致换行。
  • ' '.join(output_parts):把列表里的所有字符串用空格分隔,拼成最终的一行输出,正好符合你想要的格式。

另外,你的代码里导入了os但没有用到,可以直接删掉,让代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:49:25