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

如何使用Python删除CSV中非表头的第一行并直接保存至原文件

Python原地删除CSV表头后第一行数据实现方案

所有方案均直接修改原文件,不会额外生成留存的新文件,无多余打印输出,执行完原文件即为删除目标行后的结果。

说明:文本类文件在磁盘存储上无法直接精准删除中间位置的字节片段,所有"原地修改"的逻辑本质是先将需要保留的内容读入内存,清空原文件后再将保留内容写回,不会产生额外的冗余文件。

方案1:标准库实现(无第三方依赖)

不需要安装任何额外包,直接用Python自带的csv模块即可,兼容所有Python环境:

import csv

# 将此处替换为你的CSV文件实际路径
csv_path = "target.csv"

# 读取需要保留的内容
with open(csv_path, "r", newline="", encoding="utf-8") as f:
    reader = csv.reader(f)
    # 读取表头
    header = next(reader)
    # 跳过需要删除的第一条数据行
    next(reader)
    # 收集剩余所有需要保留的行
    remain_content = [header] + list(reader)

# 覆盖写回原文件
with open(csv_path, "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerows(remain_content)

方案2:Pandas实现(适合数据处理场景)

如果你已经在使用pandas做数据处理,代码会更简洁:

import pandas as pd

# 将此处替换为你的CSV文件实际路径
csv_path = "target.csv"

# 读取文件:默认第一行为表头,跳过第1条数据行(行号从1开始计数,所以skiprows传[1])
df = pd.read_csv(csv_path, skiprows=[1])
# 覆盖写回原文件,不写入pandas自动生成的索引列
df.to_csv(csv_path, index=False)

注意事项

  • 如果你的CSV文件编码不是utf-8,请将代码里的encoding参数改成对应编码(比如gbk、utf-8-sig),避免乱码
  • 针对GB级以上的超大CSV文件,全量读入内存会占用过高资源,这种场景建议加一层磁盘缓冲分块读写,日常使用场景下上述代码完全满足需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 08:09:14