【问题标题】:configparser.NoSectionError: No section: 'setting' PS C:\Users\p>configparser.NoSectionError: No section: 'setting' PS C:\Users\p>
【发布时间】:2020-07-06 12:09:00
【问题描述】:

一个.ini

    [setting]
    a = 5

main.py

    from configparser import ConfigParser
    
    config = ConfigParser()
    config.read('a.ini')
    
    print(config.sections())
    print(config.items('setting'))
    print(config.items('setting')('a'))

错误

PS C:\用户\p> & C:/Users/p/AppData/Local/Microsoft/WindowsApps/python.exe c:/101/main.py [] Traceback(最近一次调用最后一次):文件 "C:\程序 文件\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\lib\configparser.py", 第 846 行,在项目中 d.update(self._sections[section]) KeyError: 'setting'

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件“c:/101/main.py”,第 7 行,in print(config.items('setting')) 文件 "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\lib\configparser.py", 第 849 行,在项目中 raise NoSectionError(section) configparser.NoSectionError: No section: 'setting' PS C:\Users\p>

【问题讨论】:

    标签: python ini


    【解决方案1】:

    从不同位置运行程序时,我遇到了同样的错误。因为您的程序将查找与 a.ini 文件相同的路径。

    • 确保您位于包含 a.ini 文件的目录中。

    • 或者更好的方法是使用os, sys 在运行时为您查找路径。
      这样您就可以在任何地方运行您的程序。

    from configparser import ConfigParser
    import os, sys
        
    config = ConfigParser()
    config.read(os.path.join(sys.path[0], 'a.ini'))
    
    print(config.sections())
    print(config.items('setting'))
    print(config['setting']['a'])
    

    【讨论】:

      猜你喜欢
      • 2011-09-02
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 2014-03-18
      • 2020-06-15
      • 2015-07-15
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多