欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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编码格式  保存

参考

编码查询

python的"\ufeff"与中文编码问题

什么是文件的BOM头,及BOM头有哪些坑?