生活本不苦,苦的是欲望过多;心本无累,累的是放不下的太多。人生就是欲望和所求的不断减少的过程;命运的深层次意义,就是要学会放弃和回归,放弃一切浮躁喧嚣,回归内心的安宁。人生,学会沉淀,而不不是消沉。
上一篇: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)
如果感觉本文对您有帮助可以点个赞哦
本文为学习笔记,转载请标明出处
本文仅供交流学习,请勿用于非法途径
仅是个人意见,如有想法,欢迎留言
网友评论