为什么这段代码引发错误:
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'
扩展内容.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']