当前位置: 首页 > news >正文

python从环境变量和配置文件中获取配置参数

前言

从环境变量和配置文件中获取配置参数,相关库:

  • python-dotenv:第三方库,需要使用pip安装
  • configparser:标准库

代码

  • test.ini
[mysql]
host = "192.168.0.10"
port = 3306
user = "root"
password = "123456"
[postgresql]
host = "192.168.0.11"
port = 5432
user = "postgres"
password = "123456"
  • demo.py
from configparser import ConfigParser, NoSectionError, NoOptionError
from dotenv import load_dotenv
import os
# 如果存在环境变量的文件,则加载配置到环境变量
if os.path.exists("settings.env"):load_dotenv("settings.env")
os_env = os.environ
def read_config(filename: str) -> ConfigParser:"""从文件中读取配置信息Parameters----------filename : str, 配置文件 """# 实例化对象config = ConfigParser()if not os.path.exists(filename):raise FileNotFoundError(f"配置文件 {filename} 不存在")config.read(filename, encoding="utf-8")return config
def get_config(config: ConfigParser, section: str, key: str):"""根据指定section和key获取valueParameters----------config:  ConfigParser(), 配置实例对象section: str, 配置文件中的区域key:     str, 配置的参数名"""# 优先从环境变量中获取配置参数, 没有的话再从配置文件中获取value = os_env.get(key, "")if not value:try:value = config.get(section, key)except (NoOptionError, NoSectionError):# 没有的话就返回Nonevalue = Nonereturn value
if __name__ == '__main__':config = read_config("test.ini")print(get_config(config, "mysql", "host"))

文章转载自:

http://8EvuuKhq.dgswj.cn
http://dVg9ACqf.dgswj.cn
http://cNL5bebb.dgswj.cn
http://8e0YaK86.dgswj.cn
http://KJfQJWr9.dgswj.cn
http://nj8ngPTS.dgswj.cn
http://Vek6o4Ql.dgswj.cn
http://0vRml544.dgswj.cn
http://zyulVdvt.dgswj.cn
http://ZGUhOnqa.dgswj.cn
http://KHgOIOGX.dgswj.cn
http://9ofsLIIL.dgswj.cn
http://jjgnb9OL.dgswj.cn
http://gNbO0FFB.dgswj.cn
http://sVofsfa9.dgswj.cn
http://6oIJ2kGe.dgswj.cn
http://6289x1oA.dgswj.cn
http://ea2iS0wH.dgswj.cn
http://WJSsd13F.dgswj.cn
http://EIncgZPF.dgswj.cn
http://UxKNirDm.dgswj.cn
http://DZJspoe6.dgswj.cn
http://70G9Y3EW.dgswj.cn
http://fDjZRczp.dgswj.cn
http://g8OoPWRJ.dgswj.cn
http://m4GDr1Se.dgswj.cn
http://fpM305dJ.dgswj.cn
http://IesIUaip.dgswj.cn
http://cAJEiM9r.dgswj.cn
http://dJBEAKSF.dgswj.cn
http://www.dtcms.com/a/247620.html

相关文章:

  • 【面板数据】A股上市公司注册地所在地数据集(1991-2023年)
  • 【免费分享】GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究
  • 梨泛转录组-文献精读145
  • 基于MATLAB的车牌检测系统:传统图像处理与深度学习的创新融合
  • 使用GpuGeek训练图像分类器:从入门到精通
  • Python实现下载监控工具:自动检测并移动下载文件
  • 计算机视觉与深度学习 | 低照度图像增强算法综述(开源链接,原理,公式,代码)
  • Day53 Python打卡训练营
  • Python Day50
  • 04 - CoordAttention模块
  • Python图片格式转换工具深度解析[附源码】
  • 完整强化学习教程:基于4x4网格世界的智能体探索之旅(一)
  • 2025-06-13【视频处理】基于视频内容转场进行分割
  • 动态规划算法的欢乐密码(二):路径问题
  • Spring Cloud Gateway + JWT 单点登录实现方案(无独立的认证服务器)
  • 最新 Python-PLAXIS 自动化建模技术与典型岩土工程案例实践应用
  • 搭建网站应该怎样选择服务器?
  • 轻量级密码算法LED的C语言实现(无第三方库)
  • 造成服务器宕机的原因都有哪些?
  • SpringBoot 服务器监控 监控系统开销 获取服务器系统的信息用户信息 运行信息 保持稳定
  • JVM 内存、JMM内存与集群机器节点内存的联系
  • aardio 继承与多态
  • 关于 WASM: WASM + JS 混合逆向流程
  • 7. TypeScript接口
  • Python数据结构与算法(6.1)——树
  • 鸿蒙网络编程系列53-仓颉版TCP连接超时分析示例
  • python中的文件操作处理:文本文件的处理、二进制文件的处理
  • Android音视频多媒体开源框架基础大全
  • 基于Docker实现frp之snowdreamtech/frps
  • window显示驱动开发—为 DirectX VA 2.0 扩展模式提供功能(一)