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

使用Polars的write_csv方法时如何实现文件追加写入?

Polars实现CSV追加写入的方法

Polars不像Pandas那样给to_csv(Polars对应方法是write_csv)提供直接的mode参数,但可以通过Python内置的文件操作结合write_csv实现追加,核心是要处理好表头重复写入的问题:

  • 首次写入文件时,需要写入表头+数据
  • 后续追加时,只写入数据,跳过表头

具体实现代码

1. 单次追加的基础写法

import polars as pl

# 准备要追加的数据集
new_data = pl.DataFrame({
    "id": [3, 4],
    "name": ["Charlie", "David"]
})

# 以追加模式打开CSV文件
with open("target.csv", "a", encoding="utf-8") as file:
    # 判断文件是否为空:为空则写表头,否则不写
    need_header = file.tell() == 0
    new_data.write_csv(file, include_header=need_header)

2. 封装成函数方便复用

如果需要多次追加数据,把逻辑封装成函数更省心:

import polars as pl

def append_df_to_csv(df, csv_path):
    with open(csv_path, "a", encoding="utf-8") as f:
        # 文件指针在开头说明是新文件,需要写表头
        write_header = f.tell() == 0
        df.write_csv(f, include_header=write_header)

# 调用示例
append_df_to_csv(new_data, "target.csv")

注意要点

  • 务必保证追加的DataFrame和已有CSV的列顺序、列名完全一致,否则会出现数据错位
  • 编码格式要和原文件统一,避免出现乱码
  • 如果是在Windows环境下,可能需要给open函数加上newline=""参数,防止出现多余空行

内容的提问来源于stack exchange,提问作者Mr. Caribbean

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:25:46