配置 读取_python读取配置的若干方式

本文介绍了Python中四种常见的配置文件读取方式:argparse(通常用于命令行参数解析,可通过组合使用读取配置文件)、configparser(Python内置,适合读取section和entry结构的配置文件)、dotenv(处理环境变量配置,常配合os.getenv使用)和pydantic(提供数据验证和设置管理,需自定义类指定变量类型)。每种方式的使用示例和特点均有详细讲解。
摘要由CSDN通过智能技术生成
提纲:

一、背景介绍

二、方式一:argparse

三、方式二:configParse

四、方式三:dotenv

五、方式四:pydantic

六、小结


背景

对于依赖环境或者对用户开放的变量,我们通常会使用配置文件来管理。

因此对于绝大部分情况而言,我们都需要有一个读取配置文件的操作。

主要目的即将配置文件中的变量值按合适的类型方式存储到内存中。

针对这类场景,这里对几种常见配置文件读取方式进行简单汇总。

鉴于篇幅较长,所以提前进行排序,无关优劣,按个人偏好程度,仅供参考。

偏好程度:pydantic > dotenv > configParse > argparse.


argparse的简单使用

argparse,我们通常使用其作为命令行参数的解析器。

先看个argparse的使用示例:

# -*- coding: utf-8 -*-# !/usr/bin/env pythonimport astimport argparseparser = argparse.ArgumentParser(description='Arg parse module.')parser.add_argument('str_param.', type=str, help='Required parameter')parser.add_argument("--bool_param", type=ast.literal_eval, default=False)parser.add_argument('--int_param', type=int, default=711)parser.add_argument('--bool_param_two', "-b", action="store_true",                    help="True when exists, or else False")args = parser.parse_args()print(f"int_param: {args.int_param}")params = vars(args)print(params)

首先需要创建解析器的句柄。

然后才能添加各类参数。

参数分两大类,必填参数和可选参数,区别在于添加参数时第一个参数的开头,是否带杠。

第一个参数,代表的是变量名。

不带杠,代表必填。带两杠,代表可选参数。

带一杠,代表起别名,只能单字符,可以单独使用,也可以跟在可选参数之后。

比如示例中的“-b”。

type用于指定类型,help用于辅助性说明,default为初始默认值。

action="store_true"代表的是有则为True,否则为False。

添加完后,需要返回其命名空间。

此时的args,往往就足够了,可以直接通过点属性的方式获取属性值。

对args进行vars转换,只是为了转换成字典,从而打印,观看整体参数赋值效果。

实际使用中看情况使用。

由于argparse自带帮助参数,因此,可以直接通过-h或者--help来获得参数解释。

执行效果如下:

c9f61b2ce637951fdc3981dd27528e98.png

第一条即简单查看其使用说明。

第二条即观察其整体参数字典。

必填参数对应取值紧跟脚本之后,可选参数位置随意。

对于起了别名的参数,使用别名和使用变量名效果一样。

那么,对于argparse的简单使用我们也就基本过了一遍。


argparse读取配置文件

因为argparse可以通过命令行获取到必要的参数。

因此,咱们可以通过命令行来指定配置文件的路径。

当然,只是指定配置文件的路径,我们还不足以解析出配置文件的内容。

所以还需要其他库的配合使用,比如使用json.loads来解析字典型参数配置文件。

给个argparse读取配置文件的示例。

先看配置文件:

{
        "dev":        {
                "param_one": "value_one_dev",            "param_two": 711        },    "test
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值