使用 configparser 解析 ini 文件给出 configparser.MissingSectionHeaderError ,第一行为 'ÿþ\n'

Parsing ini file with configparser gives configparser.MissingSectionHeaderError with 'ÿþ\n' as the first line

我在从 ini 文件的 [.ShellClassInfo] 部分读取变量时遇到问题。

我的 ini 文件:(上下各有一个空白分隔符)

[.ShellClassInfo]

IconResource=\some_text

我从文件中读取文本的方式:

import configparser

config = configparser.ConfigParser()
config.read('desktop.ini')
file = config.get('.ShellClassInfo', 'IconResource')
content = open(file, 'r').read()

在脚本的其余部分,我检查变量内容中是否包含某些文本。

但在我检查之前,出现了以下错误:

configparser.MissingSectionHeaderError: File contains no section headers.
file: 'desktop.ini', line: 1
'ÿþ\n'

有谁知道如何解决这个问题?

您提供的错误包含关于第一行有那些奇怪的 'ÿþ\n' 符号的信息。
ÿþ 实际上是 Byte order mark (BOM) of UTF-16 encoding. (Found it here: )

根据documentation可以指定读取配置文件时的编码方式如下:

config = configparser.ConfigParser()
config.read('desktop.ini', encoding='utf-16')