Python ConfigParser - 引发 KeyError(键)
Python ConfigParser - raise KeyError (key)
config.ini
[datasource]
host = localhost
config.py
import configparser
import os
config = configparser.ConfigParser()
config.read(os.path.join(os.getcwd(), 'config.ini'))
host = config['datasource']['host']
Test.py
import config
print(config.host)
Traceback (most recent call last):
File "Test\test.py", line 6, in
import config
File "C:\Users\jack\PycharmProjects\Test\config.py", line 6, in
host = config['datasource']['host']
File "C:\Users\jack\AppData\Local\Programs\Python\Python37-32\lib\configparser.py", line 958, in getitem
raise KeyError(key)
KeyError: 'datasource'
所有文件都放在同一个文件夹中。
当我 运行 Test.py 来自 pycharm 的脚本时,它没有问题。
但是当我从终端调用时出现错误。
如何解决这个问题?
如果配置文件放在同一目录下
只需获取 config.py 文件位置,删除 config.py 文件名并加入 config.ini 文件
path = '/'.join((os.path.abspath(__file__).replace('\', '/')).split('/')[:-1])
config.read(os.path.join(path, 'config.ini'))
这样即使移动整个目录也不需要一直更改文件路径
config.ini
[datasource]
host = localhost
config.py
import configparser
import os
config = configparser.ConfigParser()
config.read(os.path.join(os.getcwd(), 'config.ini'))
host = config['datasource']['host']
Test.py
import config
print(config.host)
Traceback (most recent call last):
File "Test\test.py", line 6, in
import config
File "C:\Users\jack\PycharmProjects\Test\config.py", line 6, in
host = config['datasource']['host']
File "C:\Users\jack\AppData\Local\Programs\Python\Python37-32\lib\configparser.py", line 958, in getitem
raise KeyError(key)
KeyError: 'datasource'
所有文件都放在同一个文件夹中。
当我 运行 Test.py 来自 pycharm 的脚本时,它没有问题。
但是当我从终端调用时出现错误。
如何解决这个问题?
如果配置文件放在同一目录下
只需获取 config.py 文件位置,删除 config.py 文件名并加入 config.ini 文件
path = '/'.join((os.path.abspath(__file__).replace('\', '/')).split('/')[:-1])
config.read(os.path.join(path, 'config.ini'))
这样即使移动整个目录也不需要一直更改文件路径