基于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备份文件的脚本
Aug 11 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
python如何使用unittest测试接口
Apr 04 Python
python 反向输出字符串的方法
Jul 16 Python
python+opencv实现阈值分割
Dec 26 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
django 数据库返回queryset实现封装为字典
May 19 Python
Python requests及aiohttp速度对比代码实例
Jul 16 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注入攻击[一]
2007/04/17 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
Python二分查找详解
2015/09/13 Python
Python编码爬坑指南(必看)
2016/06/10 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
中学生爱国演讲稿
2013/12/31 职场文书
运动会领导邀请函
2014/02/05 职场文书
阿德的梦教学反思
2014/02/06 职场文书
财务简历的自我评价
2014/03/05 职场文书
写给父母的感谢信
2015/01/22 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
六五普法心得体会2016
2016/01/21 职场文书
Python实现简单的猜单词
2021/06/15 Python
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers