Python ConfigParser cannot search .ini file correctly (Ubuntu 14, Python 3.4)

后端 未结 2 1988
死守一世寂寞
死守一世寂寞 2020-11-28 16:06

Problem: The code compiles fine but when ever i call the read_db_config function i get \"Exception: mysql not found in the mysql_config.ini file\"

The file is in the

2条回答
  •  囚心锁ツ
    2020-11-28 17:00

    I ran it again but with the modification of adding

    parser = configparser.ConfigParser()
    parser['mysql'] = {'database': 'testdba',
                       'user' : 'root',
                       'password' : 'test',
                       'unix_socket' : '/opt/lampp/var/mysql/mysql.sock'}
    with open('mysql_config.ini', 'w') as configfile:
    parser.write(configfile
    

    and I found that this created the file "mysql_config.ini" not in the directory where the python "read_db_config" was stored but the parent directory of main python module which calls this module. I searched it up a bit and figured out a perment solution the lets me keep the "mysql_config.ini" where I wish.

    import configparser 
    
    def read_db_config(dirname = '/opt/Python_MySQL_Email_Receipt_Client/Config/MySQL/', filename='mysql_config.ini', section='mysql'):
    
    # create parser and read ini configuration file
    
    parser = configparser.ConfigParser()
    parser.read(dirname + filename)
    
    # get section, default to mysql
    db = {}
    if parser.has_section(section):
        items = parser.items(section)
        for item in items:
            db[item[0]] = item[1]
    else:
        raise Exception('{0} not found in the {1} file'.format(section, filename))
    
    return db
    

提交回复
热议问题