MissingSectionHeaderError: File contains no section headers.(configparser)

22,786

Solution 1

just specify right encoding

config.read(config_file_path, encoding='utf-8-sig')
  • "utf-8-sig" for UTF-8 with BOM
  • "utf-8" for UTF-8 without BOM

Solution 2

As mentioned in other answers the config file needs to be INI format, but the actual error you're seeing is due to the fact that the requested config file is missing any section headers (as mentioned in the error message) - these are names enclosed in square brackets which provide a header for a section of the INI file. The default header is [DEFAULT] e.g.

[DEFAULT]
 config_item1='something'
 config_item2=2

Solution 3

I got the same error message when I created a pip.conf file. In my case, I had inadvertently created a UTF-8 file with BOM (byte-order marker) instead of a plain UTF-8 file (with no BOM).

So, check to make sure you have a plain text file. If you're not sure, you can open the file in a hex editor and check the first byte(s).

Solution 4

ConfigParser parse UTF-8 file with BOM(xef xbb xbf)

    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)
Share:
22,786
Arij SEDIRI
Author by

Arij SEDIRI

Updated on July 05, 2022

Comments

  • Arij SEDIRI
    Arij SEDIRI almost 2 years

    I'm using configparser in order to read and modify automatically a file conf named 'streamer.conf'. I'm doing this :

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

    And then it breaks apart with this Error message :

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

    What might be wrong? Any help appreciated.

  • Arij SEDIRI
    Arij SEDIRI over 7 years
    J Earls : I got it ! But is there a way in which I can deal with .conf files ?
  • J Earls
    J Earls over 7 years
    ".conf files" has no specific meaning. Given the one tiny snippet from the error message, it's not XML, JSON, INI, CSV. You will most likely have to write your own file parser for this.
  • SNygard
    SNygard over 7 years
    This answer is useful, maybe add an explanation of what the BOM is and how the first line removes it?