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

Python实现:将CSV单列数据按每11个元素一行写入文本文件

需求说明

读取仅含单列的CSV文件并转换为列表,从列表中每取出11个元素(每个元素为9位数字),用逗号分隔后作为一行写入另一个文本文件(每行11个元素适配A4纸),循环处理列表中剩余的所有元素。

当前代码
count = 0

textfile = 'texstf.txt'
filepath = 'testfile2.csv'

with open(filepath, "r") as f:
    lines = [ str(line.rstrip()) for line in f ]
    for key in lines:
        while(count < 11):
            with open(textfile, "w") as myfile:
                myfile.write(','.join(lines))
                count += 1
示例数据

CSV输入示例

6381473
6381783
6381814
...

预期输出示例

6381473,6381783,6381814,...,第11个元素
第12个元素,...,第22个元素
...
修正后的代码

你的代码存在几个核心问题:

  • 用"w"模式打开文件会每次清空原有内容,无法实现追加写入
  • 没有做分批取11个元素的逻辑,直接把整个列表一次性写入
  • for和while的嵌套逻辑错误,无法正确控制元素分组

以下是修正后的可运行代码:

textfile = 'texstf.txt'
filepath = 'testfile2.csv'

# 读取CSV文件,去除换行符并过滤空行
with open(filepath, "r") as f:
    lines = [line.rstrip() for line in f if line.strip()]

# 按每11个元素为一组,分批写入文件
with open(textfile, "w") as myfile:
    # 步长为11的循环,实现分组
    for i in range(0, len(lines), 11):
        current_group = lines[i:i+11]
        # 将组内元素用逗号连接成一行
        line_content = ','.join(current_group)
        # 写入文件并换行
        myfile.write(line_content + '\n')

代码说明

  1. 读取CSV时过滤空行,避免处理无效的空白内容
  2. 用range(0, len(lines), 11)生成步长为11的索引,自动实现每11个元素的分组
  3. 一次性打开输出文件,分批写入所有分组内容,减少文件IO操作
  4. 每组元素用逗号连接后添加换行符,保证输出文件每行独立

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:45:33