zoukankan      html  css  js  c++  java
  • python读取配置文件

    转载:https://my.oschina.net/u/3041656/blog/793467

    配置文件作为一种可读性很好的格式,非常适用于存储程序中的配置数据。在每个配置文件中,配置数据会被分组(比如"config"和”cmd“).每个分组在其中指定对应的各个变量值,,如下:

    #定义congig分组

    [congig]

    platformName=Android

    appPackage=com.remwe

    appActivity=com.remove.SplashActivity

    #定义cmd分组

    [cmd]

    viewPhone=adb devices

    startServer=adb start-server

    stopServer=adb kill-server

    #定义log分组

    [log]

    log_error=true

    基本的读取操作:

    1)-read(filename)   直接读取文件内容

    2)sections()     得到该section,并以列表的形式返回

    3)options(section) 得到该section的所有option

    4)-items(section)  得到该section的所有键值对

    5)-get(section,option)  得到section中option的值,返回为string类型

    6)-getint(section,option)  得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat()函数

    对配置文件进行操作前。我们需要进行以下两个操作:

    1、实例化ConfigParser对象

    #实例化configParser对象

    cf=config.ConfigParser()

    2、读取配置文件

    #读取config.ini文件

    cf.read(config.ini)

    然后进行配置文件的读取操作

    以get为例,实例代码如下:

    #定义方法,获取config分组下指定name的值

    def getConfigVValue(self,name):

        value=self.cf.get("config",name)

        return(value)

    #定义方法,获取cmd分组下指定name的值

    def getCmdValue(self,name):

        value=self.cf.get("cmd",name)

        return(value)

    通过get(section,option)方法,可以获取指定分组下指定名称的值,其他方法类似,可参照着尝试

    基本写入操作:

    1)-write(fp)将config对象写入至某个.ini格式的文件

    2)-add_section(section)添加一个新的section

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

    4)-remove_section(section)删除某个section

    5)-remove_option(section,option) 删除某个section下的option

    以set(section,option,value)为例,示例代码:

    #定义方法,修改config分组下指定name的值value

    def setConfigValue(self,name,value):

        cfg=self.set("config",name,value)

        fp=open(r'config.ini','w')

       cfg.write(fp)

    配置文件中的名字是不区分大小写的,如下两个是等价的:

    #不区分大小写,以下两个鞥加,都获取appActivity的值

    self.cf.get("config",”appActivity“)

    self.cf.get("config","APPACTIVITY")

    在解析时,getboolean()方法查找任何可行的值,例如以下几个都是等价的:

    #以下却不知都是等价的为ture

    [log]

    log_error=ture

    log_error=TURE

    log_error=1

    log_error=yes

  • 相关阅读:
    消失的 unittest.makeSuite()
    自定义错误信息在各个浏览器表现不同
    “创建Web应用程序”与“创建Web网站”的区别
    如何将Notepad++改造成Python开发工具
    64位服务器IIS不能识别32位framework版本。IIS没有Asp.net切换界面的解决办法。
    C++文件流,读入数据注意
    Chessboard(二分图完备匹配)
    courses二分图最大匹配
    Linux BASH Shell文件名匹配/输出重定向
    LinuxShell一些很少用到却很有用的指令
  • 原文地址:https://www.cnblogs.com/yuany66/p/12197320.html
Copyright © 2011-2022 走看看