Python3 configparser模块的安装、基础读写ini文件和字典的互转

目前使用Python3做一个读写ini文件并显示到屏幕的小功能,在Python上就比较简单啦,加载一下这个模块就好。

安装

看你Python语言安装了哪一个版本的,Python3的话,使用pip3,configparser都是小写,python2则是ConfigParser.

pip install configparser

或者pip3 install configparser

如果pip版本不够新,按照提示进行升级pip.

基础读写

写操作:

        import configparser
        config = configparser.ConfigParser()
        config.add_section("AXIS_0")
        config.set("AXIS_0", "time", "500")
        config.set("AXIS_0", "acc", "10")
        config.add_section("AXIS_1")
        config.set("AXIS_1", "time", "250")
        config.write(open('test.ini', "w"))

这里生成了test.ini:这里有一个问题,现在我写的是小写的time和acc,但是我写大写的到文件中,文件里也是小写的,这里最后添加一个方法。

[AXIS_0]
time = 500
acc = 10

[AXIS_1]
time = 250

读操作:

        import configparser
        config = configparser.ConfigParser()
        config.read('test.ini',encoding='utf-8')
        config.readfp(open())
        a = config.get("AXIS_0", "time")
        print(a)

这里打印的就是500,正确。

 

将ini文件内容写入一个字典中,作为前端显示的后台数据源

 

        import configparser
        config = configparser.ConfigParser()
        config.read('test.ini',encoding='utf-8')
        dic = dict(config._sections)
        for i in dic:
            dic[i] = dict(dic[i])
        print(dic)

打印为:{'AXIS_0': {'time': '500', 'acc': '10'}, 'AXIS_1': {'time': '250'}},成功写入。

将标准字典写入ini文件

想要将字典再写入ini文件就得使用上面打印的形式的字典。


        config = configparser.ConfigParser()
        for key in dic:
            config.add_section(key)
            for key1 in dic[key]:
                config.set(key, key1, dic[key][key1])
        config.write(open('xml/output.ini', "w"))

 

----------------------------------------------------------------------------------------------------------------------

转成的ini文件自动转成小写解决

自定义一下,在根目录创建myConfigParser.py文件,写入:

import configparser


class MyConfigParser(configparser.ConfigParser):
    def __init__(self, defaults=None):
        configparser.ConfigParser.__init__(self, defaults=defaults)

    #这里源代码进行了小写的转化,重写不给自动小写
    def optionxform(self, optionstr):
        return optionstr

实现的时候将原来的

        import configparser
        config = configparser.ConfigParser()

转成

            import  myConfigParser
            config = myConfigParser.MyConfigParser()

就可以啦。

你可能感兴趣的:(python)