码迷,mamicode.com
首页 > 编程语言 > 详细

python去掉BOM头的方法

时间:2018-01-23 20:40:34      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:空行   bom   编码   utf8   int   data   字符   去掉   code   

今天在写批量生成身份证号造数据的时候出现了问题,其中一个是报不能转成int型,后经查找,发现是utf-8BOM头的问题。

什么是BOM?

  在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码。其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。

类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。

 

  当在读txt时一旦读到BOM头就会报错。

处理方法如下:

import codecs

with open(file_path, "r") as file:
    data = file.read()
    data = data.replace(codecs.BOM_UTF8, "")
    districtlist = data.split(\n)
    file.closed

 

python去掉BOM头的方法

标签:空行   bom   编码   utf8   int   data   字符   去掉   code   

原文地址:https://www.cnblogs.com/panpan0301/p/8337128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!