python 提取csv文件内容遇到ufeff非法字符
python 提取csv文件内容遇到ufeff非法字符
使用python3提取csv文件的时候,提取来的数据用set去重后发现有ufeff非法字符,影响接下来的操作
产生该现象的原因是 UTF 的编码格式分为 UTF-8 和 UTF-8 with BOM,前者 UTF-8 是没有字节序的问题的,而后者 BOM 则表示 Byte Order Mark,是存在字节序的区分的
处理
python在读取 UTF-8 with BOM 编码的文件时需要选择 UTF-8-sig 关键字指明编码格式
将读取文件部分
with open('./test.csv','r',encoding='utf-8') as f:
改为
with open('./test.csv','r',encoding='utf-8-sig') as f:
我们如何知道自己的编码格式呢?
探测编码格式类型
可以通过chardet库自动对编码格式进行判断(该库一般是不需要单独安装的)。
示例代码如下:
import chardet
with open("xxx.file", "rb") as fp:
rawdata = fp.read()
encoding_format = chardet.detect(rawdata)["encoding"]
print(encoding_format )
打印当前编码格式类型
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!