Python 配置文件
python的配置文件形式:
1、python模块,py文件作为配置的文件
2、yaml文件,.yaml,.yml
3、.ini文件,.conf文件
使用目的是为了方便,管理整个项目中的静态数据
1、代码示例
py文件
1.1 config.py
logger_name = 'python_api'
logger_level = 'DEBUG'
logger_file = 'log_my.txt'
使用的时候直接导入这个模块,模块名.变量名
logger = LoggerHandler(config.logger_name, config.logger_level, config.logger_file)
1.2 把变量封装到类里面,方便继承和修改
class LoggerConfig():
logger_name = 'python_api'
logger_level = 'DEBUG'
logger_file = 'log_my.txt'
class ProductLoggerConfig(LoggerConfig):
logger_level = 'WARNING'
2、yaml文件,.yaml,.yml
yaml是第三方库,需要单独安装,PyYAML
api.yaml
logger:
name: python_api
level: DEBUG
file: log_my.txt
excel:
file: cases.xlsx
sheet: login
request:
method: post
demo:
- 测试
- hello
使用方式
test_yaml.py
import yaml
f = open('api.yaml')
data = yaml.load(f.read(), Loader=yaml.FullLoader)
print(data)
返回的是字典格式数据
{'logger': {'name': 'python_api', 'level': 'DEBUG', 'file': 'log_my.txt'}, 'excel': {'file': 'cases.xlsx', 'sheet': 'login'}, 'request': {'method': 'post'}, 'demo': ['测试', 'hello']}
数组的表示方式 –
demo:
- 测试
- hello
封装yaml读取和写入
import yaml
class YamlConfig(object):
def __init__(self):
pass
def read_yaml(self, file, encoding='utf-8'):
with open(file, encoding=encoding) as f:
return yaml.load(f.read(), Loader=yaml.FullLoader)
def write_yaml(self, file, wtdata, encoding='utf-8'):
with open(file, encoding=encoding, mode='w') as f:
yaml.dump(wtdata, stream=f, allow_unicode=True)
if __name__ == '__main__':
ya = YamlConfig()
data = (ya.read_yaml('api.yaml'))
print(data)
ya.write_yaml('api111.yaml', data)
3、.ini读取的数据类型是str,但是现在很少用了