python 读取 config.ini 文件出错
程序员文章站
2024-03-20 22:32:40
...
问题
软件需要读取配置信息,配置信息写在 config.ini 文件中,config.ini文件经记事本打开修改之后,软件无法再次读取。
错误信息
configparser.MissingSectionHeaderError: File contains no section headers
读取时也会报"\ufeff"错误
错误原因
记事本在修改保存 config.ini 时,默认会在文件的头部加入 BOM,以标识文件编码格式。而我们的程序以及 config.ini,使用的是utf-8,并没有BOM,因此在读取的时候会报错。
解决方法
1.修改程序读取配置文件的编码格式:utf-8 改为 utf-8-sig
f1 = open(file_chinese, encoding = 'UTF-8-sig',errors="ignore")
"UTF-8"的字节顺序在所有系统中都是一様的,没有字节序的问题,它不需要BOM(“ByteOrder Mark”)。
"UTF-8-sig"即UTF-8 with BOM需要提供BOM。
2.每次修改文件时采用 无BOM编码格式 保存