美文网首页
python处理BOM

python处理BOM

作者: Cindy小隐 | 来源:发表于2016-10-27 14:11 被阅读0次

做文本处理的同学在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处理BOM

    做文本处理的同学在windows下工作可能经常会遇到带BOM的utf-8编码文件,这时需要对文件头BOM处理一下,...

  • Python处理BOM文本的解决方案

    项目中遇到要读取配置的情况, 所有就用了 ConfigParser 模块, 乍一看没有啥问题, 但是测试过程中发现...

  • PIL基本操作

    PIL: python图像处理类库 PIL(Python Imaging Library Python,图像处理类...

  • python对时间序列的处理

    简单介绍python处理时间。 基础python处理时间与日期 python基本的处理时间对象是datetime模...

  • DOM/BOM的核心操作

    javascript组成: ECMAScript,描述了JS的语法和基本对象;BOM (浏览器对象模型),处理网页...

  • 为产品定价的4种方式

    一、BOM定价 BOM即(Bill of Materials )物料清单,BOM定价指的是基于BOM价格的定价方式...

  • flask_admin csv 导出 中文乱码问题

    相关参考 python中文写入CSV乱码解决 原因:csv文件开头缺少BOM_UTF8 字符 解决:在Respon...

  • WINDOW对象说明

    首先Window是BOM中所有对象的核心,所以先理解BOM是什么吧 一、BOM 什么是BOM? 答:BOM是bro...

  • 图解BOM与DOM的区别与联系

    区别 BOM(Browser Object Model) BOM 即浏览器对象模型,BOM没有相关标准,BOM的最...

  • Bom bom bom

    今天周日,我去公司了,还好啦,至少把选择题看完了,背了一小时的书,一小时斗地主,哈哈哈!厉害吧!反正我自己满意了!...

网友评论

      本文标题:python处理BOM

      本文链接:https://www.haomeiwen.com/subject/zqtsuttx.html