python操作ini配置文件

一、.ini文件说明

格式如下:

;comments
[section1]
Param1 = value1
Param2= value2
[section2]
Param3= value3
Param4= value4
  • ; 注释
  • ==[section]==代表一个模块,一个文件内可以设置多个模块,自定义模块名称
  • Param1 = value1参数名称以及参数值,键值对的形式

我的配置文件的内容为:

conf.ini

;设置语言
[lan]
language = Chinese

二、所需要的模块

import os
import configparser

三、读取操作

proDir = os.path.dirname(os.path.realpath(sys.argv[0]))
    configPath = os.path.join(proDir,"conf.ini")#获取配置文件的路径

    conf=configparser.ConfigParser()#创建对象用于对配置文件进行操作
    conf.read(configPath,encoding="utf-8-sig")#以utf8编码形式读取
    try:
        lan = conf.get("lan","language") #读取配置文件设置的语言的值
    except:
        lan = "English"

读取的相关方法:

  • read(filename):读取文件内容

  • sections():得到所有的section,并以列表的形式返回。

  • options(section):得到该section的所有option。

  • items(section):得到该section的所有键值对。

  • get(section,option):得到section中option的值,返回string类型。

  • getint(section,option):得到section中option的值,返回int类型。

四、写入操作

# 修改配置文件中的语言
conf.set("lan","language","Chinese") #设置"lan"模块下的"language"的值为"Chinese"
conf.write(open(configPath,'w+',encoding="utf-8-sig")) #将修改写入到配置文件

写入的相关方法:

  • write(fp):将config对象写入至某个ini格式的文件中。

  • add_section(section):添加一个新的section。

  • set(section,option,value):对section中的option进行设置,需要调用write将内容写入配置文件。

  • remove_section(section):删除某个section。

  • remove_option(section,option):删除某个section下的option

五、细节注意

1、如果配置文件读取不到(不存在),则新建。

#判断是否存在配置文件,没有则创建
    if os.path.exists(configPath) == False:
        conf['lan'] = {'language':'English'}
        with open('conf.ini','w',encoding="utf-8-sig") as configfile:
            conf.write(configfile)

2、如果存在汉字,则需要将编码设为utf8。

conf.read(configPath,encoding="utf-8-sig") #注意是“utf-8-sig"

你可能感兴趣的:(Python,python)