Python3学习笔记_配置文件+框架设计_20200530

Python3学习笔记_配置文件_20200530

27、配置文件

1、配置文件指的是在一个项目当中,对项目进行配置(设置)的一些数据,这些数据在项目的运行过程中一般不会变化,
对于不同的项目,或者不同的环境可能需要变化
2、配置文件:
.ini
.conf
.cfg
.yaml
.yml

3、作用:
将所有的代码和配置都变成模块可配置化,这样就提高了代码的重用性,不用每次都去修改代码内部,
这个就是我们逐步要做的是事情,可配置化

4、使用
.yaml
.yml

配置文件格式:
字典格式:

env:
  url: http://www.baidu.com
log:
  level: DEBUG
  fh_level: ERROR
  sh_level: DEBUG
  filename: all.log

mysql:
  host: 127.0.0.1
  port: 3306
  user: root
  password: lemonban

#示例1:

config=read_yaml()

#最终读取出来的配置文件格式是:


config={
    'log':{
        'name':'python29',
        'file':'python29log.txt',
        'logger_level':'DEBUG',
        'stream_level':'DEBUG',
        'file_level':'INFO'
    },
    'mysql':{
        'port':3306,
        'db_name':'demo'
    },
    'excel':{
        'file':'ceses.xlsx'
    }
}
 config['log'][name']

那么,yaml配置文件中写的话格式为:

log:
  name: python29
  file: python29log.txt
  logger_level: DEBUG
  stream_level: DEBUG
  file_level: DEBUG

excel:
  file: cases.txt

demo:
  age: 16

#列表表示:
teachers:
  - yuz
  - miyi
  - lemon

总结:
字典的表示:
key: value (key和value之间要空一格)
字符串类型的数据:
可以加引号,也可以不加引号
列表格式表示:
- value (-+空格+值)
缩进使用两个空格
数字表示:
直接写数字
冒号后面加空格

读取yaml:
安装pyyaml:pip install pyyaml
导入:import pyyaml

import yaml
with open('config.yaml',encoding='utf-8') as f:
    # config=yaml.load(f,Loader=yaml.FullLoader)
    config = yaml.load(f, Loader=yaml.SafeLoader)
    print(config)

写入yaml:

with open('config.yaml','a',encoding='utf-8') as f:
    yaml.dump({'log':'logdemo'},f)

yaml封装:

import yaml
def read_yaml(file):
    with open(file,encoding='utf-8') as f:
    conf = yaml.load(f, Loader=yaml.SafeLoader)
    return conf

def write_yaml(file,data):
    with open(file,'a',encoding='utf-8') as f:
        yaml.dump(data,f)

#获取所有的配置
conf=read_yaml('config.yaml')

log_conf=conf['log']

def get_logger(
    name=log_conf['name'],
    file=log_conf['file'],
    file_level=log_conf['file_level'],
    logger_level=log_conf['logger_level'],
    stream_level=log_conf['stream_level'],
    fmt='%(asctime)s--%(filename)s--line:%(lineno)d--%(levelname)s:%(message)s',

    ):
    pass
28、框架设计

【包含.py文件的需要建包文件,如果不包含.py文件的,直接建目录文件就行】
公共的方法目录:common
测试用例类模块目录:testcases
测试数据目录:data
测试报告存放目录:reports
存放一些下载第三方的模块:library
配置文件存放目录:conf
日志文件存放的目录:logs

log:
 name: python29
 file: python29log.txt
 logger_level: DEBUG
 stream_level: DEBUG
 file_level: DEBUG

excel:
 file: cases.txt

demo:
 age: 16

teachers:
 - yuz
 - miyi
 - lemon

项目的启动文件:run_test.py
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值