python带bom的utf-8-sig如何去掉bom

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python带bom的utf-8-sig如何去掉bom相关的知识,希望对你有一定的参考价值。

在此列举以下两种去除方法:

(1)在notepad++等高级记事本中可以直接转换为无BOM格式的utf-8文件



(2)用python脚本解决


BOM时一串16进制字符串,在python中表示为  “b'\\xef\\xbb\\xbf'”


如果在分词之后出现BOM字符串,可以判断词是否等于“b'\\xef\\xbb\\xbf'”去除即可


 


去除文本文件中BOM头的脚本

 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
    
 def removeBom(file):
      '''移除UTF-8文件的BOM字节'''
      BOM = b'\\xef\\xbb\\xbf'
      existBom = lambda s: True if s==BOM else False
    
      f = open(file, 'rb')
      if existBom( f.read(3) ):
          fbody = f.read()
          #f.close()
          with open(file, 'wb') as f:
              f.write(fbody)

参考技术A  #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
     
 def removeBom(file):
      '''移除UTF-8文件的BOM字节'''
      BOM = b'\\xef\\xbb\\xbf'
      existBom = lambda s: True if s==BOM else False
      with open(file, 'rb') as fr:
          if existBom( fr.read(3) ):
              fbody = fr.read()
              #f.close()
              with open(file, 'wb') as fw:
                  fw.write(fbody)

以上是关于python带bom的utf-8-sig如何去掉bom的主要内容,如果未能解决你的问题,请参考以下文章

json.decoder.JSONDecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0

utf-8和utf-8-sig的区别

接口测试脚本实践记录

Python中utf-8与utf-8-sig两种编码格式的区别

python txt去掉bom头怎么去

python3读取ini配置文件