美文网首页
configobj读写.ini配置文件方法封装

configobj读写.ini配置文件方法封装

作者: 写给明天的自己 | 来源:发表于2021-09-13 09:46 被阅读0次

    生活本不苦,苦的是欲望过多;心本无累,累的是放不下的太多。人生就是欲望和所求的不断减少的过程;命运的深层次意义,就是要学会放弃和回归,放弃一切浮躁喧嚣,回归内心的安宁。人生,学会沉淀,而不不是消沉。

    上一篇:python3检查列表、元组、字符串中的重复元素
    下一篇:python3在文件夹中查找指定文件方法封装

    这里就不多解释了,自己看注释吧。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import os
    from configobj import ConfigObj
    
    
    class ReadWriteConfig:
    
        """使用说明:如果value是字典形式且字典里面有多个键值对,配置文件中的value需要使用''包裹,
        例如:key = '{"name": "black", "age": "11"}'
        path: 该文件所在文件夹的上层文件夹路径,也可以直接写绝对路径"""
    
        TYPE_ERROR = 'Parameters must all be strings.'
        path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
        def __init__(self, folder, filename):
            """
    
            :param folder: 配置文件所在的文件夹的名字
            :param filename: 配置文件的名称,没有后缀(.ini)
            """
    
            self.folder = folder
            self.filename = filename
    
        def read_config(self, section, key=None):
            """
            读取ini配置文件,ini配置文件位置需要在common文件同级目录下
    
            示例内容:
            [section]
            key = value
    
            :param section: 读取的文件的section
            :param key: 读取的文件的key,可传可不传
            :return: 传key返回key对应的值,不传key返回section对象
            """
    
            if isinstance(self.folder, str) and isinstance(self.filename, str) and isinstance(section, str):
                config_path = ''.join((self.path, '/', self.folder, '/', self.filename, '.ini'))
                con = ConfigObj(config_path, encoding='utf-8')
                if key is not None:
                    if isinstance(key, str):
                        value = con[section][key]
                        return value
                    else:
                        raise TypeError(self.TYPE_ERROR)
                else:
                    value = con[section]
                    return value
            else:
                raise TypeError(self.TYPE_ERROR)
    
        def write_config(self, section, key, value):
            """
            修改配置文件中section下key所对应的value的值。
    
            :param section: 读取的文件的section
            :param key: 需要写入的文件的key
            :param value: 需要写入的key对应的值
            :return: success 表示写入成功
            :rtype string
            """
            if all(isinstance(param, str) for param in [self.folder, self.filename, section, key, value]):
                config_path = ''.join((self.path, '/', self.folder, '/', self.filename, '.ini'))
                con = ConfigObj(config_path, encoding='utf-8')
                con[section][key] = value
                con.write()
                return 'success'
            else:
                raise TypeError(self.TYPE_ERROR)
    

    如果感觉本文对您有帮助可以点个赞哦

    本文为学习笔记,转载请标明出处

    本文仅供交流学习,请勿用于非法途径

    仅是个人意见,如有想法,欢迎留言

    相关文章

      网友评论

          本文标题:configobj读写.ini配置文件方法封装

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