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

Python使用csv库追加行时如何处理文件末尾无换行的情况

解决CSV文件追加行时末尾无换行符的问题

当使用csv.writer追加内容到CSV文件时,如果原文件末尾没有换行符,新行会直接接在最后一行后面,导致格式混乱。可以通过以下步骤解决:

解决方案代码

import os
import csv

local_file_location = "target.csv"
row = ["a", "b", "c", "d"]

# 检查文件是否存在且非空
if os.path.exists(local_file_location) and os.path.getsize(local_file_location) > 0:
    # 以二进制模式读取文件末尾字符,判断是否有换行
    with open(local_file_location, "rb") as f:
        f.seek(-1, os.SEEK_END)
        last_char = f.read(1)
        # 若末尾无换行,先写入一个换行符
        if last_char != b"\n":
            with open(local_file_location, "a") as f_append:
                f_append.write("\n")

# 正常追加新行
with open(local_file_location, "a") as file:
    writer = csv.writer(file)
    writer.writerow(row)

代码说明

  • 先判断文件是否存在且不为空:空文件直接追加即可,无需额外处理
  • 用二进制模式打开文件并定位到末尾前1位,读取最后一个字符,避免文本模式下换行符解析的差异
  • 如果末尾字符不是换行符,先追加一个换行,再执行正常的CSV写入操作
  • 当原文件末尾已有换行符时,不会额外添加,保持原有逻辑正常工作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:50:33