在cmd中使用configparser从.ini文件读取配置时的KeyError,但在PyCharm中没问题

时间:2017-04-20 07:14:07

标签: python ini configparser keyerror

我正在写俄语评论,所以我使用utf-8 config.ini:

; Файл конфигурации
; Название секции писать в квадратных скобках,
; например [Example]
; Параметры писать в виде param_name = value
[default]
; Имя выходного html файла
out_file = cities.html
; Заголовок сгенерированной html страницы
file_title = cities
[filterparams]
; Параметры для фильтрации всех постов
; Значения по-умолчанию
; Минимальный индекс климата
climate_index = 60.0
; Минимальная температура(В градусах по Цельсию)
temp_min = 15
; Максимальная температура(В градусах по Цельсию)
temp_max = 24
; По уровню жизни город в ТОП-...
amount = 50

config_loader.py(阅读配置+“配置”功能从一个部分创建一个字典):

try:
assert os.path.exists('E:\pythoncodes\config.ini')
except:
print('Нет файла конфигурации config.ini')
exit(1)

try:
config = configparser.ConfigParser()
config.read('config.ini', encoding="utf-8")
except configparser.MissingSectionHeaderError:
print('Ошибка в названии секции в файле config.ini')
exit(1)
except configparser.ParsingError:
print("Ошибка в парсинге конфигурационного файла")
exit(1)

def configuration(section):
cfg = dict(config[section])
return cfg

这是通常的函数调用:

cfg = configuration("filterparams")

在PyCharm中它运行良好,但是当我在cmd中打开它时会出现KeyError。这是我得到的错误:

Traceback (most recent call last):
File "E:\pythoncodes\main.py", line 3, in <module>
from reading import read
File "E:\pythoncodes\reading.py", line 4, in <module>
from parsing import json_parsing
File "E:\pythoncodes\parsing.py", line 20, in <module>
cfg = configuration("filterparams")
File "E:\pythoncodes\config_loader.py", line 23, in configuration
cfg = dict(config[section])
File "E:\python\lib\configparser.py", line 959, in __getitem__
raise KeyError(key)
KeyError: 'filterparams'

我做错了什么?

0 个答案:

没有答案