一:首先在包目录下创建文件夹: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()