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

    一:首先在包目录下创建文件夹:config

    config下创建test.conf文件

    [section1]   #节点
    name = tank  #k = v
    age = 28
    
    [payload]
    page =1
    size = 50
    locale = zh-CN
    utc_offset = 480
    canonical_country_code = JP

    二:config下创建readConfig.py文件

      2.1获取所有的节点
      标准写法:ret1 = conf.sections()

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    ret1 = conf.sections()
    print(ret1)
    
    #输出结果:['payload', 'section1']

      2.2获取某一节点下所有的K值

      标准写法:ret2 = conf.options('节点名')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    ret2 = conf.options('payload') print(ret2)
    #输出结果:['page', 'size', 'locale', 'utc_offset','canonical_country_code']

      2.3获取某一节点下某一个K值对应的的V值

      标准写法:ret3 = conf.get('节点名', 'K')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    ret3 = conf.get('payload', 'page')
    print(ret3)
    #输出结果:1

      2.4获取某一节点下所有的键值对

      标准写法:ret4 = conf.items('节点名')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    ret4 = conf.items('payload')
    print(ret4)
    #输出结果:[('page', '1'), ('size', '50'), ('locale', 'zh-CN'), ('utc_offset', '480'), ('canonical_country_code', 'JP')]

      2.5查询节点/键值对是否存在

      标准写法:has_sec = conf.has_section('节点名')

      标准写法:has_opt = conf.has_option('节点名','K')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    has_sec1 = conf.has_section('payload')
    #输出结果:True
    has_opt = conf.has_option('payload', 'page')
    #输出结果:True

      2.6写入配置文件test.conf(在新增,更改,删除后均需要写入才会生效)

      标准写法:conf.write(open(‘路径’, 'w'))

      实例见下方

      2.7增加节点

      标准写法:conf.add_section('节点名')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    conf.add_section('ceshi')
    conf.write(open(r'F:apac-mis-testzijiconfiglj', 'w'))
    #查看文件中新增节点ceshi

      2.8增加和更改键值对值
      标准写法:conf.set('节点名','K','V')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    conf.set('ceshi', 'K', 'V')
    conf.write(open(configPath, 'w'))

      2.9删除键值对

      标准写法:conf.remove_section('节点名')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    conf.remove_option('ceshi', 'K')
    conf.write(open(configPath, 'w'))

      2.10删除节点

      标准写法:conf.remove_option('节点名','K')

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    conf.remove_section('ceshi')
    conf.write(open(configPath, 'w'))

      2.11获取某一节点下所有的V值(使用items获取多有的键值对,通过for循环获取所有的V值,并使用append()组成一个新的list或者add()组成一个新的set)

    import os
    import configparser
    
    cur_path = os.path.dirname(os.path.realpath(__file__))   #获取当前文件所在路径
    configPath = os.path.join(cur_path, "lj")  #拼接出文件路径
    conf = configparser.ConfigParser()
    conf.read(configPath)  #读取配置文件lj.ini
    
    payload1 = conf.items("payload")  #先获取receiver所有键值对list格式,
    payload = list()                   #创建一个list                   
    for i in range(0, len(payload1)):  #再通过for循环获取所有的值
        nre = payload1[i][-1]
        payload.append(nre)            #使用append()方法组成一个新的list
    print(payload)
    
    #输出结果:['1', '50', 'zh-CN', '480', 'JP']

    三:其他目录下的.py文件调用配置文件内容,创建

    使用方法说明:

    #加载需要的模块
    from config import readConfig #获取V值给V v = readConfig.v #调用本文件内的方法,并把值传入 方法名(值1,值2,...)
    import requests
    import unittest
    from config import readConfig
    
    class GetLog(unittest.TestCase):
        ''' 请求getCompanyList接口'''
    
        # 从配置文件获取测试地址和参数
        host = readConfig.host
        url = readConfig.url
        payload = readConfig.payload
    
        def test_case(self):
    
            r1 = requests.post(GetLog.host+GetLog.url+"/getCompanyList", data=GetLog.payload)
            req1 = r1.json()
            print(req1)
    if __name__ == '__main__':
        unittest.main()
  • 相关阅读:
    FFT/NTT求高精度多项式乘法
    1e10内的素数和
    KMP变形
    中国剩余定理
    pytorch深度学习:卷积神经网络
    无题
    pytorch深度学习:一般分类器
    pytorch深度学习:非线性模型
    条件性 正则表达式的运用
    js:当前函数获取调用它的函数
  • 原文地址:https://www.cnblogs.com/lijinglj/p/9646245.html
Copyright © 2011-2022 走看看