首页 > 其他分享 >常用配置文件及读取方法

常用配置文件及读取方法

时间:2024-11-08 20:18:51浏览次数:4  
标签:常用 读取 配置文件 Python json yaml host toml config

在 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 configparser

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

2. .yaml 文件

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

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

示例

database:
  host: localhost
  port: 3306
  user: root
  password: example

读取方式

import yaml

with 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 json

with 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 toml

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

各格式对比总结

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

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

标签:常用,读取,配置文件,Python,json,yaml,host,toml,config
From: https://www.cnblogs.com/rolandhe/p/18535878

相关文章

  • 编译常用环境变量
    环境变量功能描述常用值示例PATH包含可执行程序的搜索路径/usr/bin:/bin:/usr/local/binCCC语言编译器的路径和名称gcc,clangCXXC++编译器的路径和名称g++,clang++CFLAGS为C编译器提供附加的编译选项-O2,-g,-WallCXXFLAGS为C++编译器提......
  • 配置文件configparser模块
    importconfigparserconfig=configparser.ConfigParser()'''#创建配置文件config["DEFAULT"]={"ServerAliveInterval":"45","Compression":"yes","......
  • mongodb在生产中常用用户、角色分配
    mongodb的角色非常之多,但在实际应用当中,并不需要用到那么多的角色。博主主要列举三种常用角色创建以作记录。#role=root,超级账号,超级权限,可以操作任何db任何数据useadmindb.createUser({user:"root",pwd:"password",roles:[{role:"root",db:"admin"}]})##r......
  • Spring Boot 配置文件
     博主主页: 码农派大星.  数据结构专栏:Java数据结构 数据库专栏:MySQL数据库JavaEE专栏:JavaEE软件测试专栏:软件测试关注博主带你了解更多知识目录1. SpringBoot配置⽂件1.1很多项⽬或者框架的配置信息也放在配置⽂件中,⽐如:2.配置文件快速入手3.配......
  • 区域入侵检测视频分析服务器越界检测智能视频常用功能及场景应用分析
    随着高清监控摄像头的广泛部署和智能视频分析技术的不断进步,各行业对智能视频分析的需求日益增长,应用范围也变得更加广泛和具体,这促使智能视频分析技术向更专业化的方向发展。本文将探讨视频分析服务器在监控系统中的一些关键功能,包括入侵检测、人车流量统计、人脸识别、车牌识别......
  • ArcGIS006:ArcMap常用操作151-200例动图演示
    摘要:本文介绍了ArcMap邻域分析、栅格表面分析、水文分析、区域分析、提取分析等工具箱中的工具功能。包括计算图层间点、线、面要素间的距离、位置和角度,创建缓冲区,添加计算信息到属性表,分割面要素,编号,生成统计信息,计算几何测量值,按区域统计栅格数据、DEM高程等,使用DEM数据进......
  • .msc 是 Microsoft Management Console (MMC) 的管理单元文件扩展名,它通常用于存储管
    .msc是MicrosoftManagementConsole(MMC)的管理单元文件扩展名,它通常用于存储管理工具的配置和界面信息。MSC文件本质上是一个预设的管理工具,它包含了一些可以用来管理和配置Windows操作系统、网络、硬件等资源的界面和功能。简单来说,.msc文件是Windows系统中的管理工......
  • SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
    @目录项目整体描述页面图简介:功能概括说明具体功能举例代码介绍首页index.html操作成功跳转hello.html首页跳转index.html代码方法1:读取指定的Excel方法2:读取上传的Excel里面的内容方法3:java单文件导入Excel,保存到target的目录下方法4:java多文件导入Excel,保存到target的目录下方......
  • Windows基础 -- 常用cmd命令
    声明:本文的学习内容来源于B站up主“泷羽sec”的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文......
  • MySql基本常用语句
    查询语句select*(要查找的内容)fromtable(表名)逻辑运算符--and与--or或--not取反--in包含select*(要查找的内容)fromtable(表名)where*and*select*(要查找的内容)fromtable(表名)where*or*select*(要查找的内容)fromtable(表名)where*in(......