Python自动处理UTF编码文件中的BOM

解决方案

编码参数encoding使用utf-8-sig而非utf-8,可以自动去除多种标准的文件头BOM。

1
2
with open('file.txt', 'r', encoding='utf-8-sig') as f:
content = f.read()

额外说明

codecs模块中包括BOMBOM_UTF8BOM_BEBOM_UTF32_LE等常量。

参考资料

  1. codecs — Codec registry and base classes
    codecs --- 编解码器注册和相关基类