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

如何在非空CSV文件的首行添加数据

如何在非空CSV文件的首行添加数据

嘿,我懂你现在的困扰啦——你写的代码会把新数据追加到CSV文件的最后一行,但你想要把它加到首行对吧?别着急,咱们来搞定这个问题~

首先得说清楚:直接用追加模式("a")是没法往文件开头插内容的,因为这种模式下文件指针默认就在末尾,写操作只会从那里开始。要实现往开头加数据,咱们得换个思路:先把原文件里的所有内容读出来,把新数据放在最前面,再重新把所有内容写回文件。

下面是调整后的代码,你可以参考一下:

from csv import *

# 你要添加到首行的数据
items = ["Lenovo", 1500, "Laptop"]

# 步骤1:读取原CSV的所有内容
rows = []
with open("items.csv", "r") as readable:
    reader = reader(readable)
    rows = list(reader)

# 步骤2:把新数据插入到列表的最开头
rows.insert(0, items)

# 步骤3:把所有内容重新写回CSV文件
with open("items.csv", "w", newline="") as writable:
    writer = writer(writable)
    writer.writerows(rows)

我给你解释下这段代码的关键点:

  • 先用"r"模式打开文件,把所有行读取到rows列表里;
  • 用rows.insert(0, items)把你要加的新行插到列表的第一个位置;
  • 最后用"w"模式打开文件(这个模式会覆盖原文件内容),用writerows()把整个列表的内容一次性写回去;
  • 另外提个小细节:你原来代码里的writable.close()其实是多余的,因为with语句会自动帮你关闭文件,不用手动调用啦~

如果你的CSV文件有可能是空的,这段代码也能正常工作——空文件读出来的rows是空列表,插入新行后写回去就只有这一行数据,完全没问题。

备注:内容来源于stack exchange,提问作者joshuawamani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 07:18:08