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

使用pandas.read_csv读取TXT文件失败,open显示十六进制字符

解决pandas读取竖线分隔TXT文件全及编码错误问题

问题现象

尝试用pandas.read_csv读取TXT文件时遇到以下问题:

  • 默认UTF-8编码读取触发UnicodeDecodeError
  • 指定latin1编码后得到全的DataFrame
  • 直接读取文件内容时,每个字符后都带有\x00空字节(示例:C\x00e\x00n\x00t\x00r\x00o\x00)
  • 文件实际为竖线(|)分隔格式,可在Excel正常打开

原因分析

  1. 编码错误:文件采用**UTF-16LE(小端UTF-16)**编码——这是Windows系统常见的双字节Unicode编码,表现为ASCII字符后跟随空字节\x00。latin1编码虽能避免解码错误,但会保留空字节,导致pandas无法识别有效字段。
  2. 分隔符未指定:read_csv默认用逗号作为分隔符,而目标文件是竖线分隔,不指定sep参数会导致解析混乱,最终生成全的DataFrame。

解决方法

同时指定正确的编码和分隔符参数:

import pandas as pd
from pathlib import Path

path = Path('path/to/my/file.txt')
# 使用UTF-16LE编码,并指定竖线为分隔符
df = pd.read_csv(path, dtype=str, encoding='utf-16le', sep='|')
print(df)

若不确定编码,也可尝试encoding='utf-16',pandas会自动识别大小端,效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:42:49