如何用Python读取ini配置文件

转载地址:https://blog.csdn.net/weixin_34358092/article/details/88754362

一、ini文件格式

  • 格式如下:
  1. ; comments
  2. [section1]
  3. Param1 = value1
  4. Param2= value2
  5. [section2]
  6. Param3= value3
  7. Param4= value4
  • [section]:ini的section模块,是下面参数值的一个统称,方便好记就行。
  • Param = value:参数以及参数值。
  • ini 文件中,使用“;”进行注释。

二、读取ini文件

Python自带有读取配置文件的模块ConfigParser,配置文件不区分大小写。
有一系列的方法可提供。

  • read(filename):读取文件内容
  • sections():得到所有的section,并以列表的形式返回。
  • options(section):得到该section的所有option。
  • items(section):得到该section的所有键值对。
  • get(section,option):得到section中option的值,返回string类型。
  • getint(section,option):得到section中option的值,返回int类型。

举个栗子:

  1. import os
  2. import configparser
  3.  
  4. # 当前文件路径
  5. proDir = os.path.split(os.path.realpath(__file__))[0]
  6. # 在当前文件路径下查找.ini文件
  7. configPath = os.path.join(proDir, "config.ini")
  8. print(configPath)
  9.  
  10. conf = configparser.ConfigParser()
  11.  
  12. # 读取.ini文件
  13. conf.read(configPath)
  14. # get()函数读取section里的参数值
  15. name = conf.get("section1","name")
  16. print(name)
  17. print(conf.sections())
  18. print(conf.options('section1'))
  19. print(conf.items('section1'))

运行结果:

  1. D:\Python_project\python_learning\config.ini
  2. 2号
  3. ['section1', 'section2', 'section3', 'section_test_1']
  4. ['name', 'sex', 'option_plus']
  5. [('name', '2号'), ('sex', 'female'), ('option_plus', 'value')]

三、修改并写入ini文件

  • 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. # 写入配置文件 set()
    2. # 修改指定的section的参数值
    3. conf.set("section1",'name','3号')
    4.  
    5. # 增加指定section的option
    6. conf.set("section1","option_plus","value")
    7. name = conf.get("section1","name")
    8. print(name)
    9. conf.write(open(configPath,'w+'))
    10.  
    11. # 增加section
    12. conf.add_section("section_test_1")
    13. conf.set("section_test_1","name","test_1")
    14. conf.write(open(configPath,'w+'))
posted @ 2019-08-29 14:41  烟雨廊桥梦  阅读(296)  评论(0编辑  收藏  举报