首页 > 编程语言 >Python3读写TOML文件

Python3读写TOML文件

时间:2023-07-06 17:56:48浏览次数:46  
标签:http 读写 toml ini 格式 TOML config Python3

TOML(Tom's Obvious, Minimal Language)是一种易于阅读和编写的配置文件格式。它的设计目标是提供一种简单而灵活的方式来表示配置数据,以便于人类阅读和编辑。

基础示例

# config.toml

[server]
host = "localhost"
port = 8080

[database]
name = "mydb"
user = "myuser"
password = "mypassword"

在上面的代码中,我们定义了一个TOML格式的配置文件,包含了服务器和数据库的配置信息。通过使用[section]语法,我们可以将配置信息分组,并使用key = value语法来定义具体的配置项。

读取TOML格式的配置文件方法如下:

安装方法

pip install toml

使用方法

import toml

config = toml.load('config.toml')

print(config['server']['host'])
print(config['database']['name'])

在上面的代码中,我们首先导入了toml库。然后,我们使用toml.load()方法读取TOML格式的配置文件,并将解析结果存储在config字典中。

最后,我们可以根据需要访问config字典中的具体配置项。

多种格式及嵌套

# testcase1.toml
[testcase]
name = '测试用例1'
priority = 1  # 支持数字类型
ready = true  # 支持bool类型
tags = ['demo', 'api-test']  # 列表格式

[[testcase.steps]]  # 用例步骤列表(嵌套格式)
target = "http.get"
args = { method = "GET", url = "http://localhost:3000/api/get" }  # 支持字典格式

[[testcase.steps]]  # 用例步骤列表
target = "http.post"
args = { method = "POST", url = "http://localhost:3000/api/post", json = { a = 1, b = 2 } }

使用python读取文件内容

from pprint import pprint
import toml
data = toml.load('testcase1.toml')
pprint(data['testcase'])

运行后效果如下:

{'name': '测试用例1',
 'priority': 1,
 'ready': True,
 'steps': [{'args': {'method': 'GET', 'url': 'http://localhost:3000/api/get'},
            'target': 'http.get'},
           {'args': {'json': {'a': 1, 'b': 2},
                     'method': 'POST',
                     'url': 'http://localhost:3000/api/post'},
            'target': 'http.post'}]}

TOML和INI文件格式的区别

  • toml中变量值支持多种格式,ini中默认为字符串格式。
  • toml中字符串必须加引号,单引号,双引号都可以,ini中字符串不加引号.
  • toml中只能使用key=value形式,ini中可以使用key=valuekey : value形式.
  • toml中只支持#号注释,可以写到变量值后,也可以独占一行,ini文件中支持;#注释,一般要独占一行。
  • toml中支持字段嵌套,ini不支持。
  • toml中的选项(变量名)大小写敏感,如host,ini中选项(变量名),大小写不敏感

TOML格式的配置文件具有易读性和易编写性,同时也支持注释和多行字符串等高级特性。你可以参考TOML官方文档,了解更多详细信息和用法示例。

参考: TOML官方文档翻译

标签:http,读写,toml,ini,格式,TOML,config,Python3
From: https://www.cnblogs.com/superhin/p/python-toml.html

相关文章

  • Python3 使用confluent_kafka实现异步向Kafka中写入数据
    使用的python包pipinstallconfluent-kafka创建topic&&扩充partition#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2023/2/616:48#@Software:PyCharm__author__="JentZhang"importjsonfromconfluent_kafka.adminimportAdminClient,......
  • 1 opencv-python图像读写模块
    这个分类记录自己学习opencv的随笔文档,方便以后查询和复习。python-opencv环境配置网上教程很多,此处就不做赘述了,该文档记录opencv最基础的图像读写和显示,工具是jupyternotebook。1opencv中,图像读取函数是imread(filename,flags=None)参数说明:filename:读取图像的路径,通常支......
  • [-002-]-Python3+Unittest+Selenium Web UI自动化测试之显示等待WebDriverWait
    1、WebDriverWait基本用法引入包#文件引入fromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC每0.5s定位ID为userid的元素,如果定位成功,执行下面的代码;直至15s超时抛出异常可用来检查页面元素是......
  • python接口自动化封装导出excel方法和读写excel数据
    一、首先需要思考,我们在页面导出excel,用python导出如何写入文件的封装前需要确认python导出excel接口返回的是一个什么样的数据类型如下:我们先看下不对返回结果做处理,直接接收数据类型是一个对象,无法获取返回值此时我们需要对返回数据做处理,如下;response.text#响应文本数据......
  • Ubuntu源码编译安装Python3.8
    一、下载源码https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz二、编译参数--prefix:指定安装目录使用–prefix参数可以指定Python的安装目录,例如:./configure--prefix=/usr/local/python38这将把Python3.8安装在/usr/local/python38目录下。–enable-optim......
  • 文本格式数据读写
    数据载入、存储及文件格式文本格式数据的读写函数描述read_csv默认分隔符逗号read_table制表符(’\t‘)是默认分隔符read_excel从excel读取read_json从JSON字符串读取读取csv文件df=pd.read_csv('examples/ex1.csv')有些文件不包含表头,可以默认分......
  • Linux memory读写约束readl、readl_relaxed、writel、writel_relaxed区别
    内存类型和属性|ARMMemorytypesandattributesflowchartLR1(ArmMemoryType)-->2(NormalMemory)1-->3(DeviceMemory)2-->4(Shareable)2-->6(Cacheabilityattributes)4-->7(InnerShareable)4-->8(OuterSh......
  • Nacos如何避免并发读写冲突问题
    刚开始:privatefinalMap<String,Map<String,Service>>serviceMap=newConcurrentHashMap<>();这个serviceMap装的时一个旧的实例列表,在对集群注册更新的时候,后台异步执行时会将旧的实例拷贝一份整出一个全新的集合,拷贝后异步执行的线程池里面要往里面新加就新加,想从里面......
  • python3的django创建api通过Postman进行端口测试
    1、打开pycharm创建工程及app  创建url  创建views函数:  fromdjango.shortcutsimportrender#Createyourviewshere.fromdjango.viewsimportViewfromdjango.utils.decoratorsimportmethod_decoratorfromdjango.views.decorators.csrfimportcsrf_exemptfr......
  • .NETCORE 进行Redis读写
    usingStackExchange.Redis;publicclassRedisDataStorage{privatereadonlyIConnectionMultiplexer_redis;publicRedisDataStorage(stringconnectionString){_redis=ConnectionMultiplexer.Connect(connectionString);}publicvoidSe......