Will Dx

人世一身霜雪, 归来仍是少年.

ConfigParser模块封装

Posted April 07, 2017

ConfigParser模块封装代码地址

Bash
# -*- coding: utf-8 -*-
'''
File Name: handle_config.py
Author: WillDX
mail: xiang.dai@shuyun.com
Created Time: 2015年09月12日 星期六 22时04分20秒
'''
import os
import sys
from ConfigParser import ConfigParser

class HandleConfig():

    def __init__(self,file): 
        self.cp = ConfigParser()
        self.cp.read(file)
        self.file = file
        #print "self.file:",file

    def get_all_sections(self):
        '''返回所有配置文件中所有sections组成的列表'''
        result = self.cp.sections()
        return result
    
    def get_section_option(self,sec):
        '''返回一个section的所有options组成的列表'''
        result = self.cp.options(sec)
        return result
    
    def get_section_items(self,sec):
        '''获取指定section的配置信息,返回列表格式为[{option_name:option_value},]'''
        result = self.cp.items(sec)
        return result
    
    def get_section_option_value(self,sec,opt):
        '''读取指定的section内的option的值'''
        result = self.cp.get(sec, opt)
        return result
    
    def write_section_option(self,sec,opt,value): 
        """写入指定的section内的option的值,原有的值被替换"""
        self.cp.set(sec,opt,value)
        self.cp.write(open(self.file, "w"))
        return None
    
    def add_section(self,sec):
        '''添加一个section'''
        self.cp.add_section(sec)
        self.cp.write(open(self.file, "w"))
        return None
    
    def remove_section(self,sec):
        '''移除section'''
        self.cp.remove_section(sec)
        self.cp.write(open(self.file, "w"))
        return None
    
    def remove_section_option(self,sec,opt):
        '''移除一个section的option'''
        self.cp.remove_option(sec,opt)
        self.cp.write(open(self.file, "w"))
        return None