Разбор ini-файла с помощью configparser дает configparser.MissingSectionHeaderError с 'n \ n' в качестве первой строки - PullRequest
0 голосов
/ 29 ноября 2018

У меня проблемы с чтением переменной из раздела [.ShellClassInfo] в INI-файле.

Мой 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'

Кто-нибудь знает, как решить эту проблему?

1 Ответ

0 голосов
/ 29 ноября 2018

Предоставленная вами ошибка содержит информацию о первой строке, содержащей эти странные символы 'ÿþ\n'.
ÿþ на самом деле Метка порядка байтов (BOM) кодировки UTF-16.(Найдено здесь: ссылка )

Согласно документации вы можете указать кодировку файла конфигурации при чтении его следующим образом:

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