美文网首页
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