当前位置: 首页 > 面试题库 >

Python ConfigParser无法正确搜索.ini文件(Ubuntu 14,Python 3.4)

索正豪
2023-03-14
问题内容

问题:代码编译正常,但是每当我调用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中的变量)中查找(或创建)它们。

如果您想让它们相对于当前的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脚本下面的目录中。

您当然可以始终使用绝对路径(以/;开头/home/someuser/mysql_config.ini)。



 类似资料:
  • 问题内容: 经过多次尝试和多次搜索,我遇到了以下查询: 我使用此查询在包含音乐课程的大量页面中进行搜索。它相当不错。页面根据与查询的匹配程度获得得分。 除非用户搜索“ C Chord”或“ Am Chord”之类的内容,否则第一部分将被忽略。如果我搜索“ A和弦”或“ E和弦”,则称为“ C和弦”的页面始终位于顶部。 所以..我的问题的第1部分是:我该如何解决? 然后是第2部分。是否有可能使“标题

  • 朋友们,我有一段代码,它读取文本文件并搜索匹配的单词,但在搜索文本文件时存在不确定性。有时它能够匹配单词,有时它不能,尽管单词存在于文本文件中。 代码如下: 以下是我的文本文件内容: 有人知道为什么会这样吗?假设我在文本文件中添加一个单词“finish”,然后搜索它,它总会找到它。但是,如果我的搜索词是“dadas”或“dadist”,则在et中生成null。

  • 我通过在方法之外添加一个简单的Ride实例来测试它,它工作得很好。 我还尝试将监听器更改为,结果相同。 Edit2:当我试图从数据库中检索整数时,我会得到一条错误消息。

  • 如果我在浏览器中直接对elasticsearch进行搜索,例如: http://localhost:9200/mydocs/_search?q=awesome%20搜索 搜索体数据实际上是什么样子的?它是否执行并包含所有字段?我尝试过编写一个包含所有字段的,但在浏览器中正确操作会得到不同的结果。

  • 我试着这样读: 我尝试只打印出字符串(当我创建string str=new string(allBytes,“UTF-8”)时),但我得到的只是开头的一个正方形,然后是70多个没有文本的空行。然后我尝试了int charCode=integer.parseint(str.substring(I,I+8),2);并打印出每个单独的字符,但我得到了一个NumberFormatException。我甚至

  • 所以我正在为我的MPEG-DASH视频生成一个非常简单的MPD清单文件,但我无法找出问题所在。这是我当前的清单文件 这个MPD文件使用我能找到的每个验证器进行验证。出于安全原因,这些段的URL被隐藏,但它们都是开放的、公开的,并且可以单独查看。但当我试图运行清单文件时,这取决于我得到的玩家。“在清单中找不到支持的源”,或者干脆什么都没发生。 你知道这怎么可能是错的吗?我目前正在使用媒体url作为绝