常用配置文件及读取方法

news/2024/11/8 20:29:59/文章来源:https://www.cnblogs.com/rolandhe/p/18535878

在 Python 程序中,配置文件的常用格式有 .ini.yaml.json.toml,这些文件格式各有优缺点,适合不同的场景。下面逐一介绍这些格式及相应的读取库和优点:

1. .ini 文件

  • :Python 标准库 configparser
  • 结构.ini 文件使用键值对的结构,并支持使用不同的段(sections)来组织数据,例如 [section_name]
  • 优点
    • 简单直观,适合存储简单的配置信息。
    • 支持分区的分层结构,便于逻辑上的划分。
    • Python 标准库自带 configparser,无需额外安装第三方库。

适用场景.ini 文件适合简单、层级较少的配置信息,适合小型应用程序的基本配置需求。

示例

[database]
host = localhost
port = 3306
user = root
password = example

读取方式

import configparserconfig = configparser.ConfigParser()
config.read('config.ini')
host = config['database']['host']

2. .yaml 文件

  • PyYAML
  • 结构.yaml 支持更复杂的结构,包括字典、列表、嵌套等,可以表示多层次的配置。
  • 优点
    • 语法简洁,可读性好,适合存储结构化的数据。
    • 支持复杂的嵌套和列表,非常灵活。
    • 通常用于配置需求较复杂的项目,如微服务配置、CI/CD 配置等。

适用场景.yaml 常用于需要表达复杂数据结构的配置文件,例如包含多层次、多字段的配置需求。

示例

database:host: localhostport: 3306user: rootpassword: example

读取方式

import yamlwith open('config.yaml', 'r') as f:config = yaml.safe_load(f)
host = config['database']['host']

3. .json 文件

  • :Python 标准库 json
  • 结构:JSON 格式采用键值对的结构,并支持嵌套的字典和列表,结构相对清晰。
  • 优点
    • 广泛应用于 Web 应用和 API 配置,兼容性好。
    • 使用 Python 标准库 json,无需额外依赖。
    • 解析速度快,适合数据量较大的配置文件。

适用场景.json 常用于 Web 应用或接口配置,特别是需要与其他系统交互时。

示例

{"database": {"host": "localhost","port": 3306,"user": "root","password": "example"}
}

读取方式

import jsonwith open('config.json', 'r') as f:config = json.load(f)
host = config['database']['host']

4. .toml 文件

  • toml(Python 官方推荐库)
  • 结构.toml 文件类似于 .ini 文件,支持多级嵌套和数组,格式上更现代。
  • 优点
    • 语法简洁易读,专门用于配置文件,非常适合用来表达多层次结构的数据。
    • 多数情况下比 .yaml.json 更清晰,尤其适合项目依赖或小型应用配置。
    • 已成为 Python 的官方推荐配置文件格式,尤其在 Python 项目依赖管理(如 Poetry)中广泛应用。

适用场景.toml 文件特别适合 Python 应用程序的配置需求,尤其是在结构不复杂时更具优势。

示例

[database]
host = "localhost"
port = 3306
user = "root"
password = "example"

读取方式

import tomlconfig = toml.load('config.toml')
host = config['database']['host']

各格式对比总结

格式 优点 缺点 推荐场景
.ini 简单直观,支持分区,标准库支持 结构简单,不支持复杂嵌套 小型应用的简单配置
.yaml 语法简洁,支持复杂结构 需要安装第三方库,解析速度略慢 需要嵌套或多层次结构的复杂配置
.json 兼容性好,解析速度快,标准库支持 可读性不如 YAML,缺少注释支持 Web 配置或需要跨系统传输的应用
.toml 简洁现代,适合多级嵌套,官方推荐 支持度不如 JSON 和 YAML Python 应用程序和依赖管理配置

根据项目需求选择合适的格式,能更好地管理和读取配置文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/829010.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241407《计算机基础与程序设计》第七周学习总结

这个作业属于哪个课程 [2024-2025-1 计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里 2024-2025-1计算机基础与程序设计第七周作业这个作业的目标 学习数组与链表,基于数组和基于链表实现数据结构,无序表与有序表,树,图…

mysql ubuntu 卸载

mysql 卸载 :引用https://developer.aliyun.com/article/1306777 在 Ubuntu 系统中,MySQL 是一种常用的关系型数据库服务器。有时,我们可能需要完全卸载 MySQL 服务器,包括所有配置文件和数据,以便重新安装或切换到其他数据库服务器。本文将详细介绍在 Ubuntu 中如何完全卸…

MySQLMonitor: 黑盒测试Mysql实时监控辅助工具

MySQLMonitor MySQL实时监控工具(代码审计、黑盒测试辅助工具)使用 1.自行打包使用 git clone https://github.com/fupinglee/MySQLMonitorcd MySQLMonitormvn clean package -DskipTests=true打开target下的jar文件即可执行 2.直接下载使用 https://github.com/fupinglee/My…

初始mysql以及创建

mysql是一个客户端服务器结构的程序 mysql的服务器是真正的本体,负责保存和管理数据,数据都是保存在硬盘上 数据库服务器上可以把很多有业务上联系的表放在一起,构成一个逻辑上的数据集合登陆mysql 打开终端输入mysql -u root -p,然后显示这个就说明mysql客户端连接到了服务…

【论文阅读笔记】Transformer——《Attention Is All You Need》

论文地址:https://arxiv.org/pdf/1706.03762 代码地址:https://github.com/huggingface/transformers目录IntroductionBackgroundModel ArchitectureEncoderLN and BNDecoderAttentionMulti-head AttentionFeed-ForwardPostion Encoding IntroductionRNN,LSTM 处理时序信息的…

Trivy : 容器安全利器

在当今数字化时代,容器化技术已经成为软件开发和部署的重要组成部分。然而,随着容器数量的增加,安全问题也日益突出。为了确保容器环境的安全,我们需要一款强大的工具来检测容器中的漏洞。今天,我将为大家介绍一款优秀的容器漏洞扫描工具:Trivy Container Scanner。本文将…

Hive3.1.2搭建文档包含详细步骤及相关截图以及常见问题解决

hive-3.1.2分布式搭建文档 1、下载,上传,解压,配置环境变量# 1、解压(解压到上级目录) tar -zxvf apache-hive-3.1.2-bin.tar.gz -C..# 2、重名名 mv apache-hive-3.1.2-bin hive-3.1.2# 3、配置环境变量 vim /etc/profile# 4、在最后增加配置 export HIVE_HOME=/usr/loca…

dbeaver连接MySQL出现了 Public Key Retrieval is not allowed 错误

问题现象出现这个错误的原因 错误提示“Public Key Retrieval is not allowed”通常出现在尝试使用SSL(Secure Sockets Layer)连接到MySQL数据库时。这可能是由于以下原因之一导致的:MySQL服务器配置:MySQL服务器可能没有正确配置以允许公钥检索。 检查MySQL服务器的my.cnf…

进销存系统是什么?企业如何用好进销存系统?

很多老板都知道,面对激烈的竞争环境,进销存管理已经成为企业运营中不可或缺的一部分。无论是商品的采购、销售,还是库存管理,进销存系统的有效运作都直接影响着企业的资金流动、客户满意度以及市场竞争力。因此,如何高效地应用进销存管理系统,不仅关乎日常运营的顺畅,更…

【linux内核】 BCC Tools命令汇总

什么是BCC Tools 直接通过BPF指令编写BPF 程序是非常繁琐的事情,尤其对于运维人员来说,花70%的时间来编写一个BPF程序来实现一个检查点,不如花70%的时间来熟悉别人已经写好的BPF程序,并且把别人的BPF程序有效的串联起来形成自己分析问题的套路,等有了闲暇时间再去尝试突破…

20222311 2024-2025-1 《网络与系统攻防技术》实验四实验报告

1. 实验内容 1.1恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: (1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具; (2)使用…