zoukankan      html  css  js  c++  java
  • 用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"))#写入文件
  • 相关阅读:
    xtrabackup之Innobackupex全备数据库
    没有Where条件下group by走索引
    Oracle中查看无效的对象、约束、触发器和索引
    udev/raw/asmlib/多路径 配置asm
    自适应游标共享技术02(一个简单的例子来走近ACS)
    自适应游标共享技术03(常用分析脚本)
    监控进程是否存在
    MySQL运行状态show status详解
    MySQL 加锁处理分析
    使用RMAN验证备份的有效性
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/5414256.html
Copyright © 2011-2022 走看看