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,但是现在很少用了

物联沃分享整理
物联沃-IOTWORD物联网 » Python 配置文件

发表评论