python3 用ConfigParser包处理 ini文件

一,首先说说 所谓 ini 文件以及 ini的文件格式:

ini 文件其实就是所谓的初始化配置文件,一般的格式为:

[SECTION0]

key0 = value0

key1 = value1

[SECTION1]

key0 = value0

key1 = value1


二,configparser包

ConfigParser 包 是创建一个管理对象,再把文件 read进去,做了其他操作后,再 以打开方式打开文件,写回文件里。(注意!是以打开方式!打开方式!不是追加方式!)

因为 它本身的机制就是会先把文件复制一份,进行操作后,再整个文件内容写回文件里的。

三,相关操作:(一个 item 由 KEY和VALUE组成)

cfg = configparser.ConfigParser() #创建一个管理对象 cfg

cfg.read(file_path) #把一个 ini 文件读到 cfg 中

se_list = cfg.sections() #用一个list 存放 ini 文件中的所有 SECTIONS

item = cfg.items(SECTION) #用一个 列表item 存放 一个SECTION 中的所有 items(KEY--VALUE)

cfg.remove_option(se,key) #删除一个 SECTION 中的一个 item(以键值KEY为标识)

cfg.remove_section(se) #删除一个 SECTION

cfg.add_section(se) #增加一个 SECTION

cfg.set(se,key,value) #往一个 SECTION 中增加 一个 item(KEY--VALUE)

cfg.wrtie(fp) #往文件描述符指向的文件中 写入修改后的内容

最后献上带代码,附加注释:

# -*- codeding: utf-8 -*-

import sys
import os
import configparser                                           #导入 configparser包

class client_info(object):
    def __init__(self,file):
        self.file = file
        self.cfg = configparser.ConfigParser()                 #创建一个 管理对象。

    def cfg_load(self):
        self.cfg.read(self.file)                               #把 文件导入管理对象中,把文件内容load到内存中

    def cfg_dump(self):
        se_list = self.cfg.sections()                          #cfg.sections()显示文件中的所有 section
        print('==================>')
        for se in se_list:
            print(se)
            print(self.cfg.items(se))
        print('==================>')

    def delete_item(self,se,key):
        self.cfg.remove_option(se,key)                          #在 section 中删除一个 item

    def delete_section(self,se):
        self.cfg.remove_section(se)                             #删除一个 section

    def add_section(self,se):
        self.cfg.add_section(se)                                #添加一个 section

    def set_item(self,se,key,value):
        self.cfg.set(se,key,value)                             #往 section 中 添加一个 item(一个item由key和value构成)

    def save(self):
        fd = open(self.file,'w')
        self.cfg.write(fd)                                      #在内存中修改的内容写回文件中,相当于保存
        fd.close()

if __name__== '__main__':
    info = client_info('client.ini')
    info.cfg_load()
    info.add_section('ZJE')
    info.set_item('ZJE','name','zhujunwen')
    info.cfg_dump()
    info.save()

你可能感兴趣的:(python3)