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

Python f-string生成CSV逐行输出异常:首行重复问题如何解决

问题原因

你的代码存在三处核心错误导致输出不符合预期:

  • 计数器i初始化位置错误:i = 0写在了遍历行的for循环外层,第一行处理完成后i已经累加到10,后续其他行的while判断i < 10永远不成立,不会执行写入逻辑,最终只有第一行重复输出。
  • 多余的while循环:你预期每行CSV对应一行输出,不需要嵌套while做次数限制,这个冗余逻辑是重复输出的直接原因。
  • 没必要的手动关文件:with open语法会自动管理文件生命周期,不需要手动调用f.close(),反而可能引发后续写入报错。

另外你单独声明4个列表存储各列数据的操作完全冗余,直接遍历csv.DictReader返回的每行对象即可取值,能大幅简化代码降低出错概率。

修正后代码

import csv

csv_file = input("请输入你的文件路径:")
# 新增encoding参数避免乱码问题
with open(csv_file, 'r', encoding='utf-8') as cat_example:
    cat_entries = csv.DictReader(cat_example)
    with open("cat_output_file.txt", "w", encoding='utf-8') as f:
        # 直接遍历每一行CSV记录写入即可
        for row in cat_entries:
            f.write(f"This cat's name is {row['name']}, fur color is {row['color']}, its age is {row['age']}, and its gender is {row['gender']}.\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:06:02