Python - KeyError(key) 被引发但它不应该

Python - KeyError(key) is raised but it shouldn't

为什么此代码会引发错误:

import configparser
import os


path = '/home/solus/Downloads/TestOnMe'
os.chdir(path)

config = configparser.ConfigParser()

config.read('extensions.ini')
extensions = config['Extensions']

但相反,这段代码可以完美运行:

import configparser
import os


config = configparser.ConfigParser()

config.read('extensions.ini')
extensions = config['Extensions']

错误如下:

Traceback (most recent call last):
  File "/home/solus/Documents/Projects/Python/Learning Python from YT/Own/configurator/testtesttest.py", line 11, in <module>
    extensions = config['Extensions']
  File "/usr/lib/python3.6/configparser.py", line 959, in __getitem__
    raise KeyError(key)
KeyError: 'Extensions'

extensions.ini的内容:

[Extensions]
music = ['mp3', 'acc']
photos = ['jpeg', 'jpg', 'png']
archives = ['rar', 'zip', 'tar', 'tar.bz', 'tar.gz']
documents = ['epub', 'pdf', 'doc']

Python 文件和.ini 文件都在同一目录中。

答案很简单。仔细看:

import configparser
import os


path = '/home/solus/Downloads/TestOnMe'
os.chdir(path)

您使用 os.chdir(path) 将路径更改为 '/home/solus/Downloads/TestOnMe'。由于路径已更改 Python 尝试在 TestOnMe 目录中搜索 extensions.ini。这就是它引发错误的原因。要更正此错误,您需要更改说明的顺序。

import configparser
import os


config = configparser.ConfigParser()
config.read('extensions.ini')

path = '/home/solus/Downloads/TestOnMe'
os.chdir(path)

extensions = config['Extensions']