работает над чтением внешнего файла конфигурации в python (3.7) с использованием модуля «configparser»
Пример файла конфигурации "config.ini"
[ABC]
ch0 = "C:/Users/utility/ABC-ch0.txt"
ch1 = "C:/Users/utility/ABC-ch1.txt"
[settings]
script = "C:/Users/OneDrive/utility/xxxx.exe"
settings = "C:/Users/OneDrive/xxxxxxConfig.xml"
вот мой пример кода, который я пробовал
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
ch0 = config.get('ABC','ch0')
print(ch0)
вот код ошибки, который я получаю, не знаю, где я ошибаюсь
NoSectionError: No section: 'ABC'
любая помощь очень ценится .. спасибо заранее
Код отлично работает для меня с образцом ini, который вы предоставили для меня python 3.7
Я подозреваю, что, поскольку вы указываете относительный путь к файлу конфигурации, вы не читаете ожидаемый. Вы должны добавить отладочную печать с помощью print(os.getcwd())
Ваш файл python и config.ini находятся на одном пути? если нет, поместите свой config.ini в путь к файлу python. а затем запустите скрипт. он должен работать
Да, например, если я укажу неправильный путь, например. config.read('/xyz/config.ini'), я получаю сообщение об ошибке configparser.NoSectionError: No section: 'ABC', поэтому укажите правильный путь к config.ini, и все будет в порядке! Я попробовал это в своем ответе ниже, и это работает! Проверьте это! @pbch
Похоже, проблема не в том, чтобы найти config.ini
в правильном месте, вы можете избежать этого, выполнив os.getcwd.
import configparser
import os
config = configparser.ConfigParser()
#Get the absolute path of ini file by doing os.getcwd() and joining it to config.ini
ini_path = os.path.join(os.getcwd(),'config.ini')
config.read(ini_path)
ch0 = config.get('ABC','ch0')
print(ch0)
#"C:/Users/utility/ABC-ch0.txt"
спасибо за помощь, это сработало, это была проблема с config.ini, указывающим на неправильное местоположение.
Не волнуйтесь! Я видел, что вы приняли, а затем не приняли мой ответ @Pbch, что-то не сработало в моем ответе?
Ваш код абсолютно в порядке.
Эта строка:
config.read('config.ini')
пытается прочитать файл из того же каталога, что и файл .py, который вы запускаете. Итак, у вас есть 3 варианта:
спасибо за помощь, это сработало, это была проблема с config.ini, указывающим на неправильное местоположение.
@Pbch Рад, что смог помочь :)
Привет @Pbch, я видел, что ты принял, а затем не принял мой ответ, что-то не сработало в моем ответе?
Распечатайте возвращаемое значение
config.read('config.ini')
и опубликуйте результат.