在database.ini文件中找不到部分postgresql

时间:2018-03-21 12:12:00

标签: python python-2.7 configparser

我正在尝试在我的数据库中创建表(postgresql 9.6),当我启动我的python脚本时,它会返回以下类型的错误:

“在$ FILEDIR / database.ini文件中找不到部分postgresql”

似乎解析器无法读取该部分,但我不明白为什么。

这是我的配置方法:

def config(filename='$FILEDIR/database.ini', section='postgresql'):

    parser = ConfigParser()
    parser.read(filename)

    db = {}

    if parser.has_section(section):
        params = parser.items(section)
        for param in params:
            db[param[0]] = param[1]
    else:
        raise Exception('Section {0} not found in the {1} file'.format(section, filename))

    return db

Database.ini:

[postgresql]
host=localhost
database=mydatabase
user=myuser
password=mypassword

我在this following thread尝试了答案,但它根本没有帮助我。谁知道原因?我正在使用python 2.7,我已经为依赖项执行了“pip install config”和“pip install configparser”。

2 个答案:

答案 0 :(得分:1)

#just remove the $FILEDIR. it worked for me.

from configparser import ConfigParser

def config(filename="database.ini", section="postgresql"):
    # create a parser
    parser = ConfigParser()
    # read config file
    parser.read(filename)

    # get section, default to postgresql
    db = {}
    if parser.has_section(section):
        params = parser.items(section)
        for param in params:
            db[param[0]] = param[1]
    else:
        raise Exception(
            "Section {0} not found in the {1} file".format(section, filename)
        )

    return db

答案 1 :(得分:0)

我也遇到了同样的问题,可以通过将整个文件路径放入config中的kwarg中来解决:

def config(filename='/Users/gramb0t/Desktop/python-postgre/data/database.ini', section='postgresql'):