У меня проблема с загрузкой и чтением файла конфигурации. Когда я запускаю файл imptest.py
, Python читает configfile.cfg
, и я получаю следующий вывод:
D:\tmp\test\dir1>python imptest.py
Section1
Section2
Section3
Но когда я запускаю файл mainfile.py
, ничего не происходит, и кажется, что Python не читает файл configfile.cfg
:
D:\tmp\test>python mainfile.py
D:\tmp\test>
Моя структура каталогов:
test/ dir1/ __init__.py imptest.py static/ configfile.cfg mainfile.py
Источник файла mainfile.py
:
from dir1.imptest import run
if __name__ == '__main__':
run()
Источник файла imptest.py
:
import configparser
def run():
config = configparser.ConfigParser()
config.read('../static/configfile.cfg', encoding='utf8')
for sections in config.sections():
print (sections)
if __name__ == '__main__':
run()
Источник файла configfile.cfg
:
[Section1]
Foo = bar
Port = 8081
[Section2]
Bar = foo
Port = 8080
[Section3]
Test = 123
Port = 80
Отредактировано
Пока мое решение (абсолютные пути):
cwd = os.path.realpath(os.path.dirname(__file__) + os.path.sep + '..')
config.read(os.path.join(cwd,'static' + os.path.sep + 'configfile.cfg'), encoding='utf8')
Это лучше, хуже или такое же, как решение @Yavar?