基于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跳出循环语句continue与break的区别
Aug 25 Python
python实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
Python读取键盘输入的2种方法
Jun 16 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
Linux下多个Python版本安装教程
Aug 15 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
python如何使用Redis构建分布式锁
Jan 16 Python
python利用后缀表达式实现计算器功能
Feb 22 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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 图片水印类代码
2012/08/27 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
python处理大日志文件
2019/07/23 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
学员自我鉴定
2014/03/19 职场文书
开工仪式主持词
2014/03/20 职场文书
2014会计年终工作总结
2014/12/20 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
Python采集壁纸并实现炫轮播
2022/04/30 Python