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