基于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 写的一个爬虫程序源码
Feb 28 Python
Python可变参数用法实例分析
Apr 02 Python
Python实现字典去除重复的方法示例
Jul 31 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 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的SQL注入过程分析
2012/01/06 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
JavaScript 函数replace深入了解
2013/03/14 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python完全新手教程
2007/02/08 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
存储过程和sql语句的优缺点
2014/07/02 面试题
机械工程系毕业生求职信
2013/09/27 职场文书
超市开店计划书
2014/04/26 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
暑期培训班策划方案
2014/08/26 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
新教师个人工作总结
2015/02/06 职场文书
教师节班会开场白
2015/06/01 职场文书