python utf8 bom_python处理BOM
做文本处理的同学在windows下工作可能经常会遇到带BOM的utf-8编码文件,这时需要对文件头BOM处理一下,不然会带来一些不好的影响。BOM字符的表示是codecs.BOM_UTF8。
首先要明确一点,在Python2中,codecs.BOM_UTF8是str类型,如果要与unicode进行对比的话需要转换一下。
下面展示Python2采用不同的读文件方式时处理BOM的代码:
with open("test.txt", "r") as fr:
for line in fr:
if line[:3] == codecs.BOM_UTF8:
line = line[3:]
print line
import codecs
with codecs.open("test.txt", "r", "utf-8") as fr:
for line in fr:
if line[0].encode("utf-8") == codecs.BOM_UTF8:
# 或使用
# if line[0] == codecs.BOM_UTF8.decode("utf-8"):
line = line[1:]
print line
python3中比较简单,只有一种方式,代码如下:
with open("test.txt", "r") as fr:
for line in fr:
if line[0] == codecs.BOM_UTF8.decode("utf-8"):
line = line[1:]
print line
import codecs
with codecs.open("test.txt", "r", "utf-8") as fr:
for line in fr:
# 代码与上面一样
if line[0] == codecs.BOM_UTF8.decode("utf-8"):
line = line[1:]
print line
最好养成这样写代码的好习惯,永不再出错。
得大神指点,有一种最简便的方式
指定编码方式为“utf_8_sig”即可解决删除文件头BOM
import codecs
with codecs.open("test.txt", "r", "utf_8_sig") as fr:
for line in fr:
print line
python utf8 bom_python处理BOM相关推荐
- UTF8文件带BOM引起的问题——iOS端竟然加载出了html代码
起因是公司iOS端竟然加载出来了HTML代码,百思不得其解,查文献,原来如此... UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM. 所以不含 BOM 的 U ...
- Pandas读取中文文本文件报错:python ‘utf-8‘ codec can‘t decode byte 0xe3 in position 0: unexpected end of data
近日用pandas的read_csv读取中文文本文件时报错:python 'utf-8' codec can't decode byte 0xe3 in position 0: unexpected ...
- QT与VS环境下代码文件编码格式使用utf-8与带BOM的utf-8的差异
QT与VS环境下代码文件编码格式使用utf-8与带BOM的utf-8的差异 使用QT进行开发的时候,有时候通常会遇到使用中文的时候,就算格式为utf-8,也会出现编译错误的问题,一般无从下手,这几天看 ...
- utf-8与带有BOM的utf-8的区别
最近在学习处理的过程中,遇到了需要txt转换为csv文件的需求,第一步当然是另存txt为utf-8的格式,但是博主在保存时,发现了utf-8有两种格式,如下图: 怀着求知欲,我查找了一下两者的区别,现 ...
- CSV乱码 - UTF-8 Unicode (with BOM)
Unicode 统一码,也叫万国码.单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字 ...
- 用ISO-8859-1解决Python ‘utf-8‘ codec can‘t decode bytes in position 924-925问题
用ISO-8859-1解决Python 'utf-8' codec can't decode bytes in position 924-925问题 参考文章: (1)用ISO-8859-1解决Pyt ...
- mysql去bom头_使用editplus等编程工具时UTF-8编码去掉BOM头方法
Unicode规范中有一个BOM的概念.BOM--Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WIDTH NO-B ...
- Python学习笔记:BOM
版权声明: 本文为博主原创文章,转载请注明出处. https://blog.csdn.net/founderznd/article/details/52197078 #前言 windows对于utf ...
- java utf-8文件处理bom头
参考:http://www.cnblogs.com/wanglao/p/5337836.html http://akini.mbnet.fi/java/unicodereader/UnicodeRea ...
- php文件代码采用UTF-8编码的BOM问题---转自CSDN---十方地藏---http://blog.csdn.net/webdesman...
一个项目,代码编码均为utf-8编码,发现问题:在使用session的时候报错,错误如下: ------------------------------------------------- Warn ...
最新文章
- 10小时,这回一次搞定 Kafka 源码!
- 15个最佳的代码评审(Code Review)工具
- FLOW福禄创始人朱萧木:如何通过产品设计助力品牌营销传播
- 2016个人阅读计划
- php 创建 cookie文件,php创建、获取cookie及基础要点分析
- amd vega56 ubuntu 下 tensorflow GPU rocm 运行情况记录及跑分
- oracle多次发运,EBS 发运管理操作实例11——延迟交货(Backorder)
- 解决12306登录验证码python
- 签名档php,签名档文字
- 百度导航hd android,百度导航hd版-百度导航hd版下载-安卓手机4.5.1APP免费软件-最笨下载...
- CSDN资源下载 不限积分/C币 都可以下
- 服务器抓不到mrcp信息,MRCP学习笔记-语音识别资源的事件和headers详解
- python找最长的单词_318. 最长单词长度乘积(Python)
- qq邮箱如何在win10邮箱连接到服务器,Win10系统自带Mail应用添加QQ邮箱的方法
- MYSQL super_read_only 到底有没有必要存在
- 自动驾驶汽车的库尔雪维尔测试是不可能的挑战
- Java学习——泛型
- 了解前端(html,css)
- 神仙接私活神器,好用的后台管理系统,功能完整,代码结构清晰,强推
- MS MARCO Document Ranking Leaderboard —— UniRetriever