python读取ini配置的类封装

此为基础封装,未考虑过多异常处理

# coding:utf-8
import configparser
import os

class IniCfg():
    def __init__(self):
        self.conf = configparser.ConfigParser()
        self.cfgpath = ‘‘

    def checkSection(self, section):
        try:
            self.conf.items(section)
        except Exception:
            print(">> 无此section,请核对[%s]" % section)
            return None
        return True

    # 读取ini,并获取所有的section名
    def readSectionItems(self, cfgpath):
        if not os.path.isfile(cfgpath):
            print(">> 无此文件,请核对路径[%s]" % cfgpath)
            return None
        self.cfgpath = cfgpath
        self.conf.read(cfgpath, encoding="utf-8")
        return self.conf.sections()

    # 读取一个section,list里面对象是元祖
    def readOneSection(self, section):
        try:
            item = self.conf.items(section)
        except Exception:
            print(">> 无此section,请核对[%s]" % section)
            return None
        return item

    # 读取一个section到字典中
    def prettySecToDic(self, section):
        if not self.checkSection(section):
            return None
        res = {}
        for key, val in self.conf.items(section):
            res[key] = val
        return res

    # 读取所有section到字典中
    def prettySecsToDic(self):
        res_1 = {}
        res_2 = {}
        sections = self.conf.sections()
        for sec in sections:
            for key, val in self.conf.items(sec):
                res_2[key] = val
            res_1[sec] = res_2.copy()
            res_2.clear()
        return res_1

    # 删除一个 section中的一个item(以键值KEY为标识)
    def removeItem(self, section, key):
        if not self.checkSection(section):
            return
        self.conf.remove_option(section, key)

    # 删除整个section这一项
    def removeSection(self, section):
        if not self.checkSection(section):
            return
        self.conf.remove_section(section)

    # 添加一个section
    def addSection(self, section):
        self.conf.add_section(section)

    # 往section添加key和value
    def addItem(self, section, key, value):
        if not self.checkSection(section):
            return
        self.conf.set(section, key, value)

    # 执行write写入, remove和set方法并没有真正的修改ini文件内容,只有当执行conf.write()方法的时候,才会修改ini文件内容
    def actionOperate(self, mode):
        if mode == ‘r+‘:
            conf.write(open(self.cfgpath, "r+", encoding="utf-8"))   # 修改模式
        elif mode == ‘w‘:
            conf.write(open(self.cfgpath, "w"))                      # 删除原文件重新写入
        elif mode == ‘a‘:
            conf.write(open(self.cfgpath, "a"))                      # 追加模式写入

cfgpath = r‘C:\Users\SXF\Desktop\config.ini‘

inicfg = IniCfg()
sections = inicfg.readSectionItems(cfgpath)
print(sections)
content = inicfg.readOneSection(‘chaoji‘)
print(content)
dic = inicfg.prettySecToDic(‘chaoji‘)
print(dic)
dic = inicfg.prettySecsToDic()
print(dic)
inicfg.addSection(‘chaoji22‘)

content = inicfg.readOneSection(‘chaoji‘)
print(content)

测试ini

[chaoji]

chaoji_username = 123

chaoji_password = 456

[my]

soft_id         = 789

sleeptime         = asd

cnt_count         = zxc

原文地址:https://www.cnblogs.com/sxf1061700625/p/12154494.html

时间: 2024-08-28 09:28:09

python读取ini配置的类封装的相关文章

golang 读取 ini配置信息

package main //BY: [email protected]//这个有一定问题   如果配置信息里有中文就不行//[Server] ;MYSQL配置//Server=localhost   ;主机//golang 读取 ini配置信息//http://www.widuu.com/archives/02/961.htmlimport (  "fmt"  "github.com/widuu/goini"  //"runtime"  //&

部分转 Java读取ini配置

转自: http://www.cnblogs.com/Jermaine/archive/2010/10/24/1859673.html 读取ini的配置的格式如下: [section1] key1=value1 [section2] key2=value2 .... 原blog中考虑: 其中可能一个Key对应多个value的情况. 代码如下: 1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 import java.i

Java读取ini配置

软件151    陶涛 读取ini的配置的格式如下: 1 2 3 4 5 6 7 [section1] key1=value1 [section2] key2=value2 .... 其中可能一个Key对应多个value的情况. 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

python读取ini文件

import configparser import os config=configparser.ConfigParser()#创建config对象 file_path=os.path.dirname(os.path.abspath('.'))+'\Python源码\config.ini'#读取文件父目录 config.read(file_path) sender=config.get('sender','sender')#读取ini配置文件中sender项中的sender值 print(fi

Python读取ini配置文件

db_config.ini [baseconf] host=127.0.0.1 port=3306 user=root password=root db_name=evaluting_sys [concurrent] processor=20 python代码 1 对应的python代码 2 import sys,os 3 import ConfigParser 4 5 class Db_Connector: 6 def __init__(self, config_file_path): 7 c

python 读取ini 配置文件

安装 pip install configparser 1 配置文件 config.ini: [MysqlDB]user=rootpasswd=123456sport=3306db_name=my_dbcharset=utf-8 获取参数: import configparser config = configparser.ConfigParser() config.read('config.ini') host=config['MysqlDB']['host'] host=config.get

Linux下读取Ini文件类

Linux下读取Ini文件类 最近项目上有需要读取Ini文件 所谓Ini文件也就是文本文档 并且以 //注释1 /*注释2 [Section] Key1=aaa Key2=bbb 这种形式存在的文档 自己编写了一个类  比较使用 简单 可以跨平台读写INI文件 头文件Ini.h #include <map> #include <string> using namespace std; #define CONFIGLEN 256 enum INI_RES { INI_SUCCESS,

封装读取文件路径的类File.h+File.m

1 #import <Foundation/Foundation.h> 2 3 #define FILE_PATH(filePath) [File path:(filePath)] 4 #define ROOT_PATH [File rootPath] 5 #define BUNDLE_PATH(fileName) [File bundleSource:(fileName)] 6 #define CREATE_FOLDER(folderPath) [File createFolder:(fol

C# 读取Ini配置文件类

配置文件 为fileName.ini 的文件 第一行必须为空,不然读不出值 [section1] key=value key2=value ......... [section2] key=value key2=value ......... 代码如下: using System; using System.Runtime.InteropServices; using System.Text; namespace Test { /// <summary> /// INI文件的操作类 /// &