问题:代码编译正常,但是每当我调用read_db_config函数时,都会出现“异常:在mysql_config.ini文件中找不到mysql”
该文件位于同一目录中,但主脚本使用以下命令向上运行两个目录
import sys from Config.MySQL.python_mysql_dbconfig import read_db_config
我是python的新手,已经到处搜索了,但是我似乎无法指出我的问题
码:
from ConfigParser import ConfigParser def read_db_config(filename='mysql_config.ini', section='mysql'): # create parser and read ini configuration file parser = ConfigParser() parser.read(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
mysql_config.ini:
[mysql] database = testdba user = root password = test unix_socket = /opt/lampp/var/mysql/mysql.sock
如果您使用 相对路径 作为文件名或目录名,则python会在 当前工作目录 ($PWDbash中的变量)中查找(或创建)它们。
$PWD
如果您想让它们相对于当前的python文件,可以使用(python 3.4)
from pathlib import Path HERE = Path(__file__).parent.resolve() CONFIG_PATH = HERE / '../etc/mysql_config.ini'
或(python 2.7)
import os.path HERE = os.path.abspath(os.path.dirname(__file__)) CONFIG_PATH = os.path.join(HERE, '../etc/mysql_config.ini')
如果您的mysql_config.ini文件位于etcpython脚本下面的目录中。
mysql_config.ini
etc
您当然可以始终使用绝对路径(以/;开头/home/someuser/mysql_config.ini)。
/
/home/someuser/mysql_config.ini