• 用ConfigParser模块读写配置文件——Python


    对于功能较多、考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置?

    1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑的问题。

    2)用配置文件,通过在程序中读配置文件获取配置,用户改变配置后重新写入配置文件,即使程序崩溃或者关闭,配置依然能够保存下来。

    3)用数据库来存储配置变量,也能长久保存,不过读写数据库也是重量级操作,不太方便。

    最近在写一个基于wxPython的GUI程序,需要用到配置文件,本来打算用xml文件来存储,网上看了一圈,读写xml也挺麻烦,加上该程序规模较小,不用太复杂的配置,考虑用简单的读写文件就行,在《Python基础教程第二版》当中看到有ConfigParser模块,挺简单。就拿来用了。

    使用ConfigParser模块,配置文件可以随便取名,唯一需要注意的是,配置文件的内容有格式要求:

    一个配置文件分为几个section,每个section的名字要用中括号括起来,中括号下面的变量和变量值以等号隔开。

    假设有一个配置文件叫做Config.txt,那么Config.txt的内容格式应该像下面这样:

    [numbers]

    pi=3.1516926

    maxfilesize=128*1024*1024

    [msg]

    error=sorry,an error occured.

    tipmsg=your input is invalid,please check and submit again.

    如何用ConfigParser读写配置文件?

    加载配置文件:objConfigParser.read(filepath)

    读取配置变量:objConfigParser.get(section,variblename)或者objConfigParser.getInt(section,variblename),如果知道该变量是int型的话

    写入(添加)配置变量到缓存:objConfigParser.set(section,variblename,newValue),

    添加新的section:objConfigParser.add_section(sectionName)

    写入文件,使修改生效:objConfigParser.write(open(filepath,'w'))

    示例程序:

    1 def testConfig():
    2     CONFIGFILE='../metaData/config.txt'
    3     config=ConfigParser()
    4     config.read(CONFIGFILE)#加载配置文件
    5     print config.getfloat('numbers', 'pi')#读取section为numbers的pi变量
    6     config.set('numbers', 'pi', 3.14)#修改pi变量
    7     #create a new section
    8     config.add_section('a_new_section') #添加新的section
    9     config.write(open(CONFIGFILE, "w"))#写入文件
  • 相关阅读:
    linux文件操作.md
    MinIO
    快速幂和快速乘
    LCP 03.机器人大冒险
    java 实现 js 方法调用
    UNITY STANDARD ASSETS源码学习笔记(二)Sun Shafts
    下雨Shader,触摸擦除雨点,声控闪电
    Unity Standard Assets源码学习笔记(一)SSAO
    【转发】vueSSR剖析
    locust中的监听器
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/5414256.html
Copyright © 2020-2023  润新知