美文网首页
Python2与Python3读取ini配置文件的差异

Python2与Python3读取ini配置文件的差异

作者: MonSoonmmm | 来源:发表于2018-12-19 17:41 被阅读0次

    首先直接上完整代码,详细解释请看下面:

    PS:大佬们请直接忽略本篇文章,写的很简单,主要是想记录下,免得自己忘了,下次还得百度一遍,emmmmmm,如果哪里有问题,请评论区喷我~~O(∩_∩)O哈哈哈

    .ini配置文件示例:

    [local]#这是section
    host=127.0.0.1#这是key
    port=3306
    password=123456
    user=root
    [demo]
    host="xxx.mysql.rds.aliyuncs.com"
    user = "xxx"
    password ="xxx"
    port=3306
    #根据section和key可以唯一找到一条记录,section,key都可以存在多条
    

    python2:

    import ConfigParser
    import os
    def get_conf(section, key, setting):
        conf_file = ConfigParser.ConfigParser()
        conf_file.read(os.path.join(os.getcwd(), 'conf.ini'))
        res = conf_file.get(section, key)
    

    python3

    import configparser
    import os
    class ReadDBConf:
        conf = configparser.ConfigParser()
        cur_path = os.path.dirname(os.path.realpath(__file__))+'/db.ini' #此处db.ini前面的 / 很重要不要漏掉
        conf.read(cur_path)
        host = conf.get('demo','host')
    

    1.导包差异

    在python3中导包

    import configparser
    

    python2则是

    import ConfigParser
    

    2.read()方法使用差异,请仔细看前面的代码

    3.相同的地方

    .ini格式的文件必须和相应.py文件在同一个包下面,原因在于read()方法接收的是一个.ini文件的绝对路径,不支持相对路径,注意获取的是配置文件的绝对路径,而不是程序运行时路径,程序入口不同时,运行时路径不同。例如下图


    image.png

    4.在.py文件中要获取到当前包所在的路径然后拼接上.ini文件名,获取路径需要先导入:

    import os
    

    python3代码:

    cur_path = os.path.dirname(os.path.realpath(__file__))+'/db.ini'
    

    python2代码:

    cur_path = os.path.join(os.getcwd(), 'conf.ini')
    

    相关文章

      网友评论

          本文标题:Python2与Python3读取ini配置文件的差异

          本文链接:https://www.haomeiwen.com/subject/zpojkqtx.html