簡體   English   中英

MissingSectionHeaderError:文件不包含節標題。(configparser)

[英]MissingSectionHeaderError: File contains no section headers.(configparser)

我正在使用 configparser 來自動讀取和修改名為“streamer.conf”的文件 conf。 我正在這樣做:

import configparser

config = configparser.ConfigParser()
config.read('C:/Users/../Desktop/streamer.conf')

然后它與此錯誤消息分開:

MissingSectionHeaderError: File contains no section headers.
file: 'C:/Users/../Desktop/streamer.conf', line: 1
u'input{\n'

可能有什么問題? 任何幫助表示贊賞。

只需指定正確的編碼

config.read(config_file_path, encoding='utf-8-sig')
  • 帶有 BOM 的 UTF-8 的“utf-8-sig”
  • “utf-8”表示沒有 BOM 的 UTF-8

我在創建pip.conf文件時收到了相同的錯誤消息。 就我而言,我無意中創建了一個帶有 BOM(字節順序標記)的 UTF-8 文件,而不是一個普通的 UTF-8 文件(沒有 BOM)。

因此,請檢查以確保您擁有純文本文件。 如果您不確定,您可以在十六進制編輯器中打開文件並檢查第一個字節。

ConfigParser 使用 BOM(xef xbb xbf) 解析 UTF-8 文件

    u = open("setting.ini").read().decode("utf-8-sig").encode("utf-8")
    fp = tempfile.TemporaryFile()
    fp.write(u)
    fp.seek(0)

    conf = ConfigParser.ConfigParser()
    conf.readfp(fp)

正如其他答案中提到的,配置文件需要是INI 格式,但您看到的實際錯誤是由於請求的配置文件缺少任何標題- 這些名稱括在方括號中,為INI 文件的一部分。 默認標頭是[DEFAULT]例如

[DEFAULT]
 config_item1='something'
 config_item2=2

您沒有包含streamer.conf ,但從錯誤消息來看,它的格式不正確。 configparser用於解析“INI”文件:

[section1]
setting1 = value
setting2 = value

[section2]
setting3 = value
setting1 = value

等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM