zoukankan      html  css  js  c++  java
  • 配置文件学习(一)

    配置文件:

                      以conf、ini为扩展名的文件

    创建配置文件

           testcase.conf

           不要安装拓展,会有各种报错。

    配置文件组成

          区域名     区域名区分大小写、无需遵守python的命名规范

          选项名 = 选项值     既可以使用绝对路径,又可以使用相对路径,无需使用双括号

     testcase.conf配置文件示例:

    # 这是一个配置文件
    # 区域名
    # 区域名区分大小写、无需遵守python的命名规范
    
    [file path]
    
    # 选项名 = 选项值
    case_path = testcase.xlsx     # 用例文件名
    log_path = record_run_result.txt  # 日志文件名
    
    [msg]
    
    success_result = Pass
    fail_result = Fail
    
    value1 = 1
    value2 = 2.4
    value3 = True
    value4 = on
    value5 = off
    value6 = false
    value7 = [10,30,'a',True]

    读取配置文件

    导入ConfigParser

    # configparser是系统自带,不需要安装

    from configparser import ConfigParser

    1、创建配置解析器对象

    config = ConfigParser()

    2、指定读取的配置文件

    #  文件既可以是绝对路径,又可以是相对路径

    config.read("testcase.conf",encoding="utf-8")

    3、读取数据(类型为字符串)

    从配置文件中,使用方括号或者get读取的所有值都是字符串类型

    方法一

    one_value = config['file path']['case_path']
    print(one_value)
    print(type(one_value))

    方法二

    two_value = config.get('msg','success_result')
    print(two_value)
    print(type(two_value))

    运行结果:     从配置文件中,使用方括号或者get读取的所有值都是字符串类型

    testcase.xlsx     # 用例文件名
    <class 'str'>
    Pass
    <class 'str'>

    读取其他类型数据,非字符串类型

    1、可以使用getint获取int类型的数据

    three_value = config.getint('msg','value1')
    print(three_value)
    print(type(three_value))

    运行结果:

    1
    <class 'int'>

    2、可以使用getfloat,读取float类型的数据

    four_value = config.getfloat('msg','value2')
    print(four_value)
    print(type(four_value))

    运行结果:

    2.4
    <class 'float'>

    3、可以使用getboolean获取,bool类型的数据

    # 可以使用getboolean获取,bool类型的数据
    # 1、yes、on、true、True——都会读取为True
    # 0、no、off、false、False——都会读取为False
    five_value = config.getboolean('msg','value3')
    print(five_value)
    print(type(five_value))

    运行结果:

    True
    <class 'bool'>

    4、读取列表

    eval函数

    # 读取列表
    one_list = config.get('msg','value7')
    # eval函数,能够将字符串转换为python中的内置类型
    print(eval(one_list))
    print(type(eval(one_list)))

    运行结果:

    [10, 30, 'a', True]
    <class 'list'>

    eval函数扩展使用

    # eval相当于把字符串的双引号或者单引号拿掉之后的类型
    print(eval('10 + 2'))
    print(eval('(10,20)'))
    print(eval('{"name":"生如花开","age":19}'))

    运行结果:

    12
    (10, 20)
    {'name': '生如花开', 'age': 19}
  • 相关阅读:
    【UOJ 121】Hzwer的陨石
    【UOJ 666】古老的显示屏
    【UOJ 222】正方形二分型
    【UOJ 654】虫洞问题
    【UOJ 226】最近公共祖先
    【UOJ 92】有向图的强连通分量
    poj2139 Floyd
    poj1631 dp,最长上升子序列
    poj1065&1548 dp,最长上升子序列,偏序与反偏序
    poj1458(裸LCS)
  • 原文地址:https://www.cnblogs.com/taiyangfeng/p/11823616.html
Copyright © 2011-2022 走看看