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

如何用Python删除含段落文本的CSV文件首行?

解决CSV含段落文本时删除首行的问题

你的代码失效的核心原因是:CSV中带段落的单元格会包含换行符,直接用split("\n")会把单个单元格的内容拆成多个列表元素,导致data[0]并不是完整的首行,删除操作自然无法正确移除真正的表头行。

正确的做法是用Python内置的csv模块,它会严格按照CSV规范解析内容,自动处理带换行的单元格:

方法1:写入新文件

import csv

# 打开原文件和输出文件
with open("file.csv", "r", newline="", encoding="utf-8") as infile, open("output.csv", "w", newline="", encoding="utf-8") as outfile:
    # 创建CSV读写对象
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    
    # 跳过首行(表头)
    next(reader)
    
    # 将剩余所有行写入新文件
    writer.writerows(reader)

方法2:直接覆盖原文件(更安全的方式)

如果不想保留原文件,可以先写入临时文件,再替换原文件,避免读写冲突导致数据丢失:

import csv
import os

# 临时文件路径
temp_path = "temp_csv_file.csv"

# 读取原文件并写入临时文件(跳过首行)
with open("file.csv", "r", newline="", encoding="utf-8") as infile, open(temp_path, "w", newline="", encoding="utf-8") as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    next(reader)
    writer.writerows(reader)

# 用临时文件替换原文件
os.replace(temp_path, "file.csv")

为什么这个方法有效?

csv.reader会识别CSV的结构,即使单元格内包含换行符,也会将整个单元格内容作为一个字段,不会错误拆分行。next(reader)会精准跳过第一行(表头),剩下的所有行都能完整保留原有格式(包括带段落的单元格)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:54:56