Ошибка при чтении INI-файла с помощью configparser - PullRequest
0 голосов
/ 28 апреля 2020

Вот мой ini-файл parameters.ini:

[parameters]
Vendor = Cat

Вот мой python код:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import codecs
import sys
import os
import configparser

### Script with INI file:
INI_fileName="parameters.ini"
if not os.path.exists(INI_fileName):
    print("file does not exist")
    quit()
print("Here is the INI_fileName: " + INI_fileName)
config = configparser.ConfigParser()
config.read('INI_fileName')
vendor = config['parameters']['Vendor']
print("Here is the vendor name: " + vendor)

Вот ошибка:

python3 configParser-test.py
Here is the INI_fileName: parameters.ini
Traceback (most recent call last):
  File "configParser-test.py", line 18, in <module>
    vendor = config['parameters']['Vendor']
  File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/configparser.py", line 958, in __getitem__
    raise KeyError(key)
KeyError: 'parameters'

Если я запускаю тот же код в интерактивном режиме, он работает. Однако, если бы он был связан с путем к файлу, ошибка была бы другой, я предполагаю: «файл не существует». Интерактивно:

>>> print(INI_fileName)
parameters.ini
>>> config.read('INI_fileName')
[]
>>> config.read('parameters.ini')
['parameters.ini']
>>> 

Почему не берется имя файла?

1 Ответ

1 голос
/ 28 апреля 2020

Играя с интерактивной командой, я думаю, что нашел причину. Так как я использую имя файла как переменную, мне не нужно использовать кавычки! Omg ... config.read (INI_fileName)

...