当使用 ConfigParser 读取 utf-8 BOM 编码的配置文件时,会出现如下类似错误:
ConfigParser.MissingSectionHeaderError: File contains no section headers.
File: settings.ini, line: 1
'\xef\xbb\xbf[General]\n'
解决办法就是先将文件内容读出来,然后转码,然后再读取转码后的配置信息:
import ConfigParser
from StringIO import StringIO
conf = ConfigParser.RawConfigParser()
with open('settings.ini', 'rb') as f:
content = f.read().decode('utf-8-sig').encode('utf8')
conf.readfp(StringIO(content))
Comments