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"))#写入文件
  • 相关阅读:
    hdu 3342 Legal or Not 拓排序
    hdu 1596 find the safest road Dijkstra
    hdu 1874 畅通工程续 Dijkstra
    poj 2676 sudoku dfs
    poj 2251 BFS
    poj Prime Path BFS
    poj 3278 BFS
    poj 2387 Dijkstra 模板
    poj 3083 DFS 和BFS
    poj 1062 昂贵的聘礼 dijkstra
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/5414256.html
Copyright © 2011-2022 走看看