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

使用Polars读取1.4GB大CSV文件出现乱码,求解决方法

解决Polars读取大文件时字符间出现\x00的问题
  • 先检测文件实际编码:换了多种编码都无效时,确定文件真实编码是核心。可以读取文件前几KB数据用chardet检测,避免加载整个大文件:
import chardet

with open("你的文件路径", 'rb') as f:
    raw_data = f.read(4096)  # 读取前4KB数据
detect_result = chardet.detect(raw_data)
print(f"检测到编码: {detect_result['encoding']}, 置信度: {detect_result['confidence']}")
  • 根据检测结果调整编码参数:

    • 如果检测结果是UTF-16LE,把代码里的encoding='UTF-16BE'替换为encoding='UTF-16LE';
    • 如果文件带BOM(字节顺序标记),直接使用encoding='utf-16',Polars会自动识别BOM并处理字节顺序:
      base = pl.read_csv(file, encoding='utf-16', low_memory=False, use_pyarrow=True)
      
  • 尝试关闭use_pyarrow:PyArrow的CSV读取逻辑和Polars原生实现存在差异,试试用Polars原生读取方式:

base = pl.read_csv(file, encoding='UTF-16BE', low_memory=False)
  • 排查文件本身问题:如果以上方法都无效,用文本编辑器(如Notepad++)打开文件片段查看编码信息,或者将文件另存为UTF-8格式后再用Polars测试读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 16:52:28