文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python如何实现ini和yaml文件读取

2023-07-05 07:23

关注

本文小编为大家详细介绍“Python如何实现ini和yaml文件读取”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现ini和yaml文件读取”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1. 引言

当我们设计软件时,我们通常会花费大量精力来编写高质量的代码。但这往往还不够,一个好的软件还应该考虑其整个系统,如测试、部署、网络等。其中最重要的一个方面是配置管理。

良好的配置管理应允许在任何环境中执行软件而不更改代码。最常见的配置包括数据库认证配置、部署服务器的主机名、动态参数等。

2. 如何选择配置文件的格式

事实上,只要代码能够读取和解析配置文件的内容,那么配置文件的格式就没有任何限制。但是,业内有一些好的做法。最常见和标准化的格式是YAML、JSON、TOML和INI。

一个好的配置文件一般需要满足以下三个标准:

如果你仍然不知道哪一个更好,但是在Python中,我推荐的答案将是YAML或INI。这是由于YAML和INI被大多数Python程序和包所接受。

3. INI文件示例

INI文件通常是最简单的解决方案,由于它只有一个层次结构。然而,INI文件中没有数据类型,所有内容都被编码为字符串。
示例如下:

[APP]ENVIRONMENT = testDEBUG = True# Only accept True or False[DATABASE]USERNAME = xiaoxuPASSWORD = xiaoxuHOST = 127.0.0.1PORT = 5432DB = xiaoxu_database

4. YAML文件示例

使用YAML针对上述示例的相同配置如下所示。如下所示,YAML文件支持嵌套结构。此外,YAML也支持一些常见的数据类型,如字符串、整数、双精度、布尔值、列表、字典等。

APP:  ENVIRONMENT: test  DEBUG: True  # Only accept True or FalseDATABASE:  USERNAME: xiaoxu  PASSWORD: xiaoxu  HOST: 127.0.0.1  PORT: 5432  DB: xiaoxu_database

5. 使用Cofigureparser读取ini文件

首先,我们来介绍Python专门为配置管理而设计的包,我们从内置的配置包Configureparser开始。

Configureparser主要用于读取和写入INI文件,但它也同样支持字典和可迭代文件对象作为输入。每个INI文件由多个部分组成,其中有多个键、值对。

下面是上述ini文件读取的示例:

import configparserdef read_ini(file_path, config_json):    config = configparser.ConfigParser()    config.read(file_path)    for section in config.sections():        for key in config[section]:            print((key, config[section][key])) read_ini("source/data/sample.ini", config_json)# ('environment', 'test')# ('debug', 'True')# ('username', 'xiaoxu')# ('password', 'xiaoxu')# ('host', '127.0.0.1')# ('port', '5432')# ('db', 'xiaoxu_database')

Configureparser并不会猜测配置文件中的数据类型,因此每个配置项都被存储为字符串。但它提供了一些将字符串转换为正确数据类型的方法。这里面最有趣的是布尔类型,因为它能够识别诸如yes/no、on/off、true/false和1/0的布尔值。

6. yaml文件读取示例

Python有专门的内置包来解析yaml文件。由于安全性问题,建议使用yaml.safe_load()而不是yaml.load()来进行yaml文件的读取。
示例代码如下:

import yamldef read_yaml(file_path):    with open(file_path, "r") as f:        return yaml.safe_load(f)data = read_yaml("data/sample.yaml")print(data)

读到这里,这篇“Python如何实现ini和yaml文件读取”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯