首页 > 解决方案 > Python ConfigParser - 引发 KeyError(键)

问题描述

配置文件

[datasource]
host = localhost

配置文件

import configparser
import os

config = configparser.ConfigParser()
config.read(os.path.join(os.getcwd(), 'config.ini'))
host = config['datasource']['host']

测试.py

import config
print(config.host)

回溯(最近一次通话最后):

文件“Test\test.py”,第 6 行,在

导入配置

文件“C:\Users\jack\PycharmProjects\Test\config.py”,第 6 行,在

主机=配置['数据源']['主机']

文件“C:\Users\jack\AppData\Local\Programs\Python\Python37-32\lib\configparser.py”,第 958 行,在getitem

引发 KeyError(键)

KeyError:“数据源”

所有文件都放在同一个文件夹中。

当我从 pycharm 运行 Test.py 脚本时,它没有问题。

但是当我从终端调用时,错误来了。

如何解决这个问题呢?

标签: pythonconfigparser

解决方案


如果配置文件放在同一目录下

只需获取 config.py 文件位置,删除 config.py 文件名并加入 config.ini 文件

path = '/'.join((os.path.abspath(__file__).replace('\\', '/')).split('/')[:-1])
config.read(os.path.join(path, 'config.ini'))

这样,即使您移动整个目录,您也不需要不断更改文件路径


推荐阅读