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

2025-12-18 01:36:25
推荐回答(1个)
回答1:

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

(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)