def remove_bom(filename):
if os.path.isfile(filename):
f = open(filename, 'rb')
# read first 4 bytes
header = f.read(4)
# check for BOM
bom_len = 0
encodings = [(codecs.BOM_UTF32, 4),
(codecs.BOM_UTF16, 2),
(codecs.BOM_UTF8, 3)]
# remove appropriate number of bytes
for h, l in encodings:
if header.startswith(h):
bom_len = l
break
f.seek(0)
f.read(bom_len)
return f
评论列表
文章目录