Python程序常用的配置文件格式及例子(上)

embedded/2025/3/28 23:24:05/

Python 中常用的配置文件格式有多种,每种格式都有其特点和适用场景。以下是常见的配置文件类型及简要说明:


1. INI 格式

  • 特点:简单键值对,支持分节(Section)。
  • 文件扩展名.ini, .cfg
  • Python 库:内置 configparser 模块。
  • 示例
     

    ini

    [database]
    host = localhost
    port = 3306
    user = admin
    password = secret
  • 适用场景:轻量级配置,结构分层清晰。

2. JSON 格式

  • 特点:结构化数据,支持嵌套,易读性高。
  • 文件扩展名.json
  • Python 库:内置 json 模块。
  • 示例
     

    json

    {
    "database": {
    "host": "localhost",
    "port": 3306,
    "credentials": {
    "user": "admin",
    "password": "secret"
    }
    }
    }
  • 适用场景:复杂数据结构,需跨语言兼容时。

3. YAML 格式

  • 特点:易读性强,支持复杂结构(列表、字典),支持注释。
  • 文件扩展名.yaml, .yml
  • Python 库:需安装 PyYAML 库。
  • 示例
     

    yaml

    database:
    host: localhost
    port: 3306
    credentials:
    user: admin
    password: secret
  • 适用场景:需要高可读性和复杂配置时。

4. TOML 格式

  • 特点:专为配置设计,支持更丰富的数据类型(如日期、时间)。
  • 文件扩展名.toml
  • Python 库:需安装 tomlkittomli
  • 示例
     

    toml

    [database]
    host = "localhost"
    port = 3306
    [database.credentials]
    user = "admin"
    password = "secret"
  • 适用场景:需要强类型或复杂配置的场景。

5. 环境变量

  • 特点:通过系统环境变量传递配置,适合动态环境。
  • Python 库:内置 os 模块。
  • 示例
     

    bash

    # 终端中设置
    export DB_HOST="localhost"
    export DB_PORT=3306
     

    python

    import os
    db_host = os.getenv("DB_HOST")
    db_port = int(os.getenv("DB_PORT"))
  • 适用场景:容器化部署、多环境配置(开发/生产)。

6. XML 格式

  • 特点:结构化标记语言,支持复杂嵌套。
  • 文件扩展名.xml
  • Python 库:内置 xml.etree.ElementTree
  • 示例
     

    xml

    <database>
    <host>localhost</host>
    <port>3306</port>
    <credentials>
    <user>admin</user>
    <password>secret</password>
    </credentials>
    </database>
  • 适用场景:需要与 Java 等其他语言交互时。

7. Python 脚本(.py 文件)

  • 特点:直接编写 Python 代码作为配置。
  • 文件扩展名.py
  • 示例
     

    python

    # config.py
    DATABASE = {
    "host": "localhost",
    "port": 3306,
    "user": "admin",
    "password": "secret"
    }
     

    python

    from config import DATABASE
  • 适用场景:需要动态生成配置或复杂逻辑时。

8. .env 文件

  • 特点:类似环境变量,但存储在文件中。
  • 文件扩展名.env
  • Python 库:需安装 python-dotenv
  • 示例
     

    env

    DB_HOST=localhost
    DB_PORT=3306
     

    python

    from dotenv import load_dotenv
    import os
    load_dotenv()
    db_host = os.getenv("DB_HOST")
  • 适用场景:管理敏感信息(需配合 .gitignore)。

选择建议

  • 简单配置:INI、JSON、环境变量。
  • 复杂结构:YAML、TOML。
  • 跨语言/兼容性:JSON、XML。
  • 动态环境:环境变量、.env 文件。

根据项目需求(如可读性、复杂度、维护性)选择合适的格式即可。

下一篇将演示如何通过python代码读取以上配置文件


http://www.ppmy.cn/embedded/174292.html

相关文章

机器学习之KMeans算法

文章目录 引言1. KMeans算法简介2. KMeans算法的数学原理3. KMeans算法的步骤3.1 初始化簇中心3.2 分配数据点3.3 更新簇中心3.4 停止条件 4. KMeans算法的优缺点4.1 优点4.2 缺点 5. KMeans算法的应用场景5.1 图像分割5.2 市场细分5.3 文档聚类5.4 异常检测 6. Python实现KMea…

一条SQL在mysql数据库中经历的过程

SQL语句在MySQL数据库中普遍经历的过程如下&#xff1a; 客户端发起查询请求到MySQL数据库服务器监听端口&#xff1b; MySQL数据库server端接收到请求&#xff1b; server端从已有的连接池或者新建一个线程&#xff0c;用来处理客户端发起的请求&#xff1b; server层…

重要重要!!改进求取Fisher矩阵的方法: 加权正则化Fisher矩阵

改进求取Fisher矩阵的方法: 加权正则化Fisher矩阵 Fisher矩阵在机器学习和统计学中有着重要作用,传统上常通过对数据样本取平均来近似求取。然而,这种简单平均的方法存在一些局限性,比如可能受异常值影响、未充分考虑数据分布特性等。以下介绍几种改进求取Fisher矩阵的方法…

蓝桥杯Python赛道备赛——Day5:算术(一)(数学问题)

笔者计划用两期博客对蓝桥杯中所涉及的算术&#xff08;数学问题&#xff09;进行解释&#xff0c;本期博客包括&#xff1a;GCD&#xff08;最大公约数&#xff09;、LCM&#xff08;最小公倍数&#xff09;、质数判断、埃氏筛法、线性筛法&#xff08;欧拉筛&#xff09;和质…

springmvc中,Filter使用

在Spring框架中&#xff0c;Filter 是一个非常有用的组件&#xff0c;用于在请求到达Controller之前或响应返回客户端之前执行一些逻辑。Filter 可以用于日志记录、权限验证、请求修改等多种场景。 ### **1. 创建自定义 Filter** 要使用Spring的 Filter&#xff0c;首先需要创…

Dropshare for Mac v6.1 文件共享工具 支持M、Intel芯片

Dropshare 是 Mac 用来上传图片、视频、截图和各种文件的工具。这款软件利用了SCP over SSH传输协议来将 Mac 本机的文件快速上传到自设的远程服务器。 应用介绍 Dropshare 是 Mac 用来上传图片、视频、截图和各种文件的工具。这款软件利用了SCP over SSH传输协议来将 Mac 本…

离散概率分布:正态分布,二项分布,连续分布,正态分布的性质

离散概率分布 对于任何具有离散分布的随机变量&#xff0c;其样本空间&#xff08;可能的取值集合&#xff09;是有限的或可数无穷的&#xff0c;并且每个可能的取值都对应一个概率。 概率质量函数&#xff08;PMF&#xff09;&#xff1a; 定义离散随机变量 X 取某个特定值的…

Kotlin 基础语法

1. &#x1f31f; Kotlin&#xff1a;Java 的“超级进化体”? Kotlin 是一门由 JetBrains 开发的 现代静态类型编程语言&#xff0c;支持 JVM、Android、JavaScript、Native 等多平台&#xff1a; Kotlin 与 Java 深度兼容&#xff0c;Kotlin 会编译为 JVM 字节码&#xff0c…