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

如何使用Python-Polars读取zstd压缩的CSV文件?

解决Polars读取zstd压缩CSV文件的问题

错误原因

你之前的代码报错是因为用xopen以文本模式("r")打开文件,返回的是文本流,但Polars的read_csv底层基于Rust实现,期望接收字节流,因此无法将文本对象向下转换为字节,触发PyDowncastError。

解决方案

方法1:用xopen以二进制模式打开

将xopen的打开模式改为"rb"(二进制读模式),直接将字节流传递给pl.read_csv,同时可根据CSV文件实际编码指定编码参数:

from xopen import xopen
import polars as pl

with xopen("data.csv.zst", "rb") as f:
    df = pl.read_csv(f, encoding="utf-8")

方法2:直接用zstandard库解压读取

如果不想依赖xopen,可以直接使用zstandard库手动创建解压流:

import polars as pl
import zstandard as zstd

with open("data.csv.zst", "rb") as f:
    decompressor = zstd.ZstdDecompressor()
    with decompressor.stream_reader(f) as stream:
        df = pl.read_csv(stream)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:22:05