基于python的ini配置文件操作工具类


Posted in Python onApril 24, 2019

本文实例为大家分享了python的ini配置文件操作工具类的具体代码,供大家参考,具体内容如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
  @Time  : 2018/6/22
  @Author : LiuXueWen
  @Site  : 
  @File  : Util_Ini_Operation.py
  @Software: PyCharm
  @Description: ini配置文件操作工具类
    1.读取.ini配置文件
    2.修改.ini配置文件
    [section]
    option:value
"""
import ConfigParser

'''
  基础读取配置文件
    -read(filename)     直接读取文件内容
    -sections()       得到所有的section,并以列表的形式返回
    -options(section)    得到该section的所有option
    -items(section)     得到该section的所有键值对
    -get(section,option)  得到section中option的值,返回为string类型
    -getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。
'''
class get_ini():

  # 初始化配置文件对象
  def __init__(self,path):
    # 实例化
    self.cf = ConfigParser.ConfigParser()
    # 读取配置文件
    self.cf.read(path)

  # 获取所有的sections
  def get_sections(self):
    sections = self.cf.sections()
    return sections

  # 获取section下的所有key
  def get_options(self,section):
    opts = self.cf.options(section=section)
    return opts

  # 获取section下的所有键值对
  def get_kvs(self,section):
    kvs = self.cf.items(section=section)
    return kvs

  # 根据section和option获取指定的value
  def get_key_value(self,section,option):
    opt_val = self.cf.get(section=section,option=option)
    return opt_val

  # 更新指定section的option下的value
  # def update_section_option_val(self,section,option,value,path,module):
  #   self.cf.set(section=section,option=option,value=value)
  #   with open(path,module) as f:
  #     self.cf.write(f)

'''
  基础写入配置文件
    -write(fp)             将config对象写入至某个 .init 格式的文件 Write an .ini-format representation of the configuration state.
    -add_section(section)       添加一个新的section
    -set(section, option, value)    对section中的option进行设置,需要调用write将内容写入配置文件 ConfigParser2
    -remove_section(section)      删除某个 section
    -remove_option(section, option)  删除某个 section 下的 option
'''
class write_ini():

  def __init__(self,path,module):
    # 实例化配置对象
    self.cf = ConfigParser.ConfigParser()
    # 获取写入文件路径,若采用w+方式则该文件可以不存在
    self.path = path
    # 配置写入方式,写入方式"w+"清空写
    self.module = module

  # 写入配置文件
  def write_ini_file(self):
    with open(self.path,self.module) as f:
      self.cf.write(f)

  # 新增section
  def add_section(self,section):
    self.cf.add_section(section=section)
    self.write_ini_file()

  # 删除某个 section
  def remove_section(self,section):
    self.cf.remove_section(section=section)
    self.write_ini_file()

  # 删除某个 section 下的 option
  def remove_option(self,section,option):
    self.cf.remove_option(section=section,option=option)
    self.write_ini_file()

if __name__ == '__main__':
  pass

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常见文件操作的函数示例代码
Nov 15 Python
跟老齐学Python之dict()的操作方法
Sep 24 Python
Python卸载模块的方法汇总
Jun 07 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 Python
python自动化测试之如何解析excel文件
Jun 27 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 Python
如何利用Python识别图片中的文字
May 31 Python
python操作redis数据库的三种方法
Sep 10 Python
Django给表单添加honeypot验证增加安全性
May 06 Python
Python中第三方库Faker的使用详解
Apr 02 Python
python实现简单日期工具类
Apr 24 #Python
NumPy 基本切片和索引的具体使用方法
Apr 24 #Python
Python使用dict.fromkeys()快速生成一个字典示例
Apr 24 #Python
python3中property使用方法详解
Apr 23 #Python
详解爬虫被封的问题
Apr 23 #Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 #Python
Python3.5 Pandas模块之DataFrame用法实例分析
Apr 23 #Python
You might like
PHP的FTP学习(一)
2006/10/09 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
python计算两个数的百分比方法
2018/06/29 Python
python 获取url中的参数列表实例
2018/12/18 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
基于python实现查询ip地址来源
2020/06/02 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
校园活动宣传方案
2014/03/28 职场文书
市场部岗位职责
2015/02/12 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫