Python配置文件管理之ini和yaml文件读取的实现

目录
  • 1. 引言
  • 2. 如何选择配置文件的格式
  • 3. INI文件示例
  • 4. YAML文件示例
  • 5. 使用Cofigureparser读取ini文件
  • 6. yaml文件读取示例
  • 7. 总结

1. 引言

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

良好的配置管理应允许在任何环境中执行软件而不更改代码。最常见的配置包括数据库认证配置、部署服务器的主机名、动态参数等。在本文中,我想与大家分享一些配置管理的良好实践,以及如何在Python中实现它们。

闲话少说,我们直接开始吧!

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

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

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

  • 易于阅读和编辑:它应该以文本为基础,以易于理解的方式进行构建。即使是非开发人员也应该能够阅读。
  • 允许注释:配置文件不是只有开发人员才能读取的文件。当非开发人员试图理解代码行为时,注释就显得很重要。编写注释是快速解释某些事情的一种方式,从而使配置文件更具表现力。
  • 易于部署:所有操作系统和环境都应接受该配置文件。

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

3. INI文件示例

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

[APP]
ENVIRONMENT = test
DEBUG = True
# Only accept True or False

[DATABASE]
USERNAME = xiaoxu
PASSWORD = xiaoxu
HOST = 127.0.0.1
PORT = 5432
DB = xiaoxu_database

4. YAML文件示例

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

APP:
  ENVIRONMENT: test
  DEBUG: True
  # Only accept True or False

DATABASE:
  USERNAME: xiaoxu
  PASSWORD: xiaoxu
  HOST: 127.0.0.1
  PORT: 5432
  DB: xiaoxu_database

5. 使用Cofigureparser读取ini文件

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

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

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

import configparser

def 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 yaml

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

7. 总结

本文重点介绍了Python中配置文件的读取,主要包括常见的ini和yaml两种文件格式,并给出了相应的代码示例。

到此这篇关于Python配置文件管理之ini和yaml文件读取的实现的文章就介绍到这了,更多相关Python ini和yaml文件读取内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python常用配置文件ini、json、yaml读写总结

    本文参考文章,出于学习目的,写本文. 开发项目时,为了维护一些经常需要变更的数据,比如数据库的连接信息.请求的url.测试数据等,需要将这些数据写入配置文件,将数据和代码分离,只需要修改配置文件的参数,就可以快速完成环境的切换或者测试数据的更新,常用的配置文件格式有ini.json.yaml等,下面简单给大家介绍下,Python如何读写这几种格式的文件. 1.ini格式 ini 即 Initialize ,是Windows中常用的配置文件格式,结构比较简单,主要由节(Section).键(key

  • python读取配置文件方式(ini、yaml、xml)

    零.前言 python代码中配置文件是必不可少的内容.常见的配置文件格式有很多中:ini.yaml.xml.properties.txt.py等. 一.ini文件 1.1 ini文件的格式 ; 注释内容 [url] ; section名称 baidu = https://www.jb51.net port = 80 [email] sender = 'xxx@qq.com' 注意section的名称不可以重复,注释用分号开头. 1.2 读取 configparser python自带的confi

  • Python配置文件管理之ini和yaml文件读取的实现

    目录 1. 引言 2. 如何选择配置文件的格式 3. INI文件示例 4. YAML文件示例 5. 使用Cofigureparser读取ini文件 6. yaml文件读取示例 7. 总结 1. 引言 当我们设计软件时,我们通常会花费大量精力来编写高质量的代码.但这往往还不够,一个好的软件还应该考虑其整个系统,如测试.部署.网络等.其中最重要的一个方面是配置管理. 良好的配置管理应允许在任何环境中执行软件而不更改代码.最常见的配置包括数据库认证配置.部署服务器的主机名.动态参数等.在本文中,我想与

  • Python自动化测试中yaml文件读取操作

    什么是yaml 一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大 更直观,更方便,有点类似于json格式 yaml文件格式:test.yaml 安装yaml pip install pyyaml yaml基本语法规则 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 #表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样 键值对(dict) yaml文件 user: ad

  • 使用Spring从YAML文件读取内容映射为Map方式

    目录 从YAML文件读取内容映射为Map Spring框架中的YAML文件 从YAML文件内容注入Map @ConfigurationProperties与@Value 配置文件yml中的map形式 yml中的格式 创建一个类 引用 打印 从YAML文件读取内容映射为Map 如何在Spring Boot中从YAML文件注入到Map. 首先,将对Spring框架中的YAML文件有一些了解. 然后,通过一个实际示例展示如何将YAML属性绑定到Map. Spring框架中的YAML文件 使用YAML文

  • python实现带错误处理功能的远程文件读取方法

    本文实例讲述了python实现带错误处理功能的远程文件读取方法.分享给大家供大家参考.具体如下: import socket, sys, time host = sys.argv[1] textport = "80" filename = sys.argv[3] try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) port = int(textport) s.connect((host, port)) fd = s.ma

  • Python读取yaml文件的详细教程

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件,看了yaml后,发现这个更直观,更方便,有点类似于json格式.在自动化测试用的相当多所以需要小伙伴们要熟练掌握 2.yaml基本语法规则: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 #表示注释,从这个字符

  • python 中yaml文件用法大全

    yaml简单介绍 YAML是一种标记语言,它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构.各种配置文件.倾印调试内容.文件大纲. 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释 yaml数组 yaml语音数组很简单,使用短横线 '-' 作为数组的开始标志. 一维数组 import yaml #三个双引号的作用是字符换行不需要加换行符 y = """ - 111 - 2

  • Python学习之yaml文件的读取详解

    目录 yaml 文件的应用场景与格式介绍 yaml 文件的应用场景 yaml 文件的格式 第三方包 - pyyaml 读取 yaml 文件的方法 yaml文件读取演示案例 yaml 文件的应用场景与格式介绍 yaml 文件的应用场景 yaml其实也类似于 json.txt ,它们都属于一种文本格式.在我们的实际工作中, yaml 文件经常作为服务期配置文件来使用. 比如一些定义好的内容,并且不会修改的信息,我们就可以通过定义 yaml 文件,然后通过读取这样的文件,将数据导入到我们的服务中进行使

  • Python使用PyYAML库读写yaml文件的方法

    目录 一,YAML 简介 二,YAML 语法 三,安装第三方yaml文件处理库PyYAML 四,读取yaml文件 1,从yaml中读取字典 2,从yaml中读取list 3,从yaml中读取元组 4,从yaml中读取多组数据 五,写入yaml文件 1,单组数据写入yaml文件 2,多组数据写入yaml文件 Python中yaml文件的读写(使用PyYAML库).最近在搭建自动化测试项目过程中经常遇到yaml文件的读写,为了方便后续使用,决定记下笔记. 最近在搭建自动化测试项目过程中经常遇到yam

  • 详解Python读取yaml文件多层菜单

    需要用到的Python知识点 Python的对象属性方法: 用到字典{key:value}值的提取: 列表的增加: if循环结合break的使用: yaml文件读取: 代码如下: #!/usr/bin/python34 import sys,os,re,yaml,time #reload(sys) #sys.setdefaultencoding('utf-8') ######################对input输入字符类型判断并转化##################### def in

  • Python基于yaml文件配置logging日志过程解析

    一.使用logging.config.dictConfig()函数读取配置信息,参数是字典类型 with open(file="./loggingconfigyaml.yaml", mode='r', encoding="utf-8")as file: logging_yaml = yaml.load(stream=file, Loader=yaml.FullLoader) # print(logging_yaml) # 配置logging日志:主要从文件中读取ha

随机推荐