configparser.NoSectionError: No section: 'setting' PS C:\Users\p>

configparser.NoSectionError: No section: 'setting' PS C:\Users\p>

a.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:\Users\p> & C:/Users/p/AppData/Local/Microsoft/WindowsApps/python.exe c:/101/main.py [] Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\lib\configparser.py", line 846, in items d.update(self._sections[section]) KeyError: 'setting'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "c:/101/main.py", line 7, in print(config.items('setting')) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\lib\configparser.py", line 849, in items raise NoSectionError(section) configparser.NoSectionError: No section: 'setting' PS C:\Users\p>

当 运行 来自不同位置的程序时,我得到了同样的错误。因为您的程序将查找与您在 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'])