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()
原文地址:https://www.cnblogs.com/lijinglj/p/9646245.html