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

使用Polars read_csv()读取多个csv.gz文件时出现矛盾错误

解决Polars读取带通配符的csv.gz文件报错问题

问题原因

当使用通配符folder_1\*.csv.gz调用pl.read_csv()时,Polars底层会默认启用扫描器模式(scan_csv),而该模式不支持直接处理压缩的CSV文件;但读取普通CSV时扫描器能正常工作,因此出现了操作结果的差异。

简洁解决方案

方案1:启用PyArrow引擎

给read_csv加上use_pyarrow=True参数,PyArrow的CSV读取器原生支持通配符+压缩文件的组合,代码最简洁:

import polars as pl

df = pl.read_csv("folder_1/*.csv.gz", use_pyarrow=True)

方案2:显式拼接单个文件读取结果

如果不想依赖PyArrow,可以用一行代码完成文件遍历与拼接,比单独调用glob.glob()再循环更紧凑,还能通过生成器表达式节省内存:

import polars as pl
import glob

df = pl.concat(pl.read_csv(file) for file in glob.glob("folder_1/*.csv.gz"))

方案3:扫描器模式指定压缩格式(可选)

如果需要用到扫描器的懒加载特性,可以手动指定压缩格式,但该方式在部分Polars版本中存在兼容性问题,优先推荐前两种方案:

import polars as pl

df = pl.scan_csv("folder_1/*.csv.gz", compression="gzip").collect()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 19:37:03