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 )

打印当前编码格式类型

posted @   liwenchao1995  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示