Python读写TOML文件的示例代码

 更新时间:2023年08月28日 16:24:40   作者:鲸落_  
TOML 文件表示(Tom's Obvious,最小语言),它的语法主要由键=值对组成,本文主要为大家详细介绍了如何使用Python读写TOML文件,感兴趣的小伙伴可以了解下

TOML 文件表示(Tom's Obvious,最小语言)。配置文件可以存储在TOML 文件中,其扩展名为 .toml。由于其语义简单,力求“最小化”,因此它应该易于阅读和编写。它还可以清楚地映射到字典。TOML 的语法主要由键=值对组成。这使得 TOML 旨在易于人们阅读和创建,同时又易于计算机解析。此外,TOML 还可用作其他配置文件格式(例如JSON 和 YAML)的替代方案。

所需模块:

通过在终端或命令提示符中执行以下命令,我们可以使用 PIP 来安装软件包。

pip install toml

TOML 文件格式

键/值对、节/表和注释构成了 TOML 文件的大部分,这些文件也需要是有效的 UTF-8 编码的 Unicode 文档。TOML 支持以下数据类型:字符串、整数、浮点型、布尔型、日期时间、数组和表(哈希表/字典)。TOML 是区分大小写的语言。以下是 TOML 文件语法的简要概述:

  • 注释以 # 字符开始,一直到行尾。
  • 键值对表示为key = value并用换行符分隔。
  • 可以使用方括号嵌套键以创建节的层次结构,例如 [section1.subsection1]
  • 值可以是字符串(在引号中)、整数、浮点数、布尔值、日期/时间(采用 ISO 8601 格式)、数组(在方括号中)或表格(在花括号中)。
  • 数组可以包含任何类型的值,包括其他数组或表。
  • 表表示一组键值对,可用于将相关的配置设置分组在一起。表可以有自己的部分,并且可以嵌套在其他表中。
  • 空白(空格、制表符和换行符)在 TOML 文件中很重要,应一致使用以确保正确解析文件。

TOML 模块的用例

  • 配置文件:TOML 通常用作 Python 应用程序的配置文件格式。toml模块可用于解析这些配置文件并将配置数据加载到应用程序中。
  • 数据序列化:TOML可用于序列化和反序列化Python数据结构。toml模块提供了将 Python 字典与 TOML 数据相互转换的方法。
  • 互操作性:TOML是一种跨语言格式,这意味着TOML数据可以在不同的编程语言之间轻松共享。toml模块可用于将 Python 数据结构转换为 TOML,然后可以轻松地与其他语言共享。
  • 测试:  TOML可以用作测试夹具格式,允许开发人员以TOML格式编写测试用例,并使用toml模块在Python中加载和运行测试用例。

目录结构:

创建 TOML 文件

创建一个 TOML 文件,复制粘贴以下文本,然后使用扩展名 .toml 保存

[server]
host = "localhost"
port = 8080
ssl = false
[database]
url = "mongodb://localhost:27017"
name = "mydb"
username = "myuser"
password = "mypassword"
level = "info"

使用Python读取TOML文件

toml.load() 方法读取 TOML 文件的内容并将解析后的数据作为 Python 字典返回。汤姆 . dumps() 方法将数据序列化回 TOML 格式并将其作为字符串返回。最后,使用print() 方法将序列化的 TOML 数据打印到控制台。此代码可用于读取和修改存储在 TOML 文件中的配置数据,然后使用 toml.dump  () 方法将修改后的数据保存回文件中。

app.py

import toml
with open('config.toml', 'r') as f:
	config = toml.load(f)
# 从配置访问值
print(config['server']['host'])
print(config['server']['port'])
print(config['database']['username'])

输出:

使用 Python 写入 TOML 文件

然后使用toml.load() 方法将文件的内容解析到名为 config的字典中。然后,代码通过在 'database' 键下添加新的键值对来修改 config 字典中的特定值。新的键为 'level2' ,值为'新添加的信息' 。最后,使用toml.dump()方法将修改后的 config字典写回到config.toml文件中,该方法将字典转换为TOML格式并写入到文件中。文件以写模式打开,with语句确保写入后正确关闭。

输出:

再次检查 config.toml 文件

[server]
host = "localhost"
port = 8080
ssl = false
[database]
url = "mongodb://localhost:27017"
name = "mydb"
username = "myuser"
password = "mypassword"
level = "info"
level2 = "new added information"

使用Python修改TOML文件

代码首先导入 toml 库,该库提供了加载和转储 TOML 文件的功能,使用 open () 函数打开名为 config.toml 的 TOML 配置文件。该文件以读取模式('r')打开,并使用 toml.load() 函数将其内容加载到 Python 字典中。生成的字典称为 config,包含 TOML 文件中的配置数据。然后,代码通过将数据库部分中的级别值更改为“信息”来修改配置字典中的值。

最后将修改后的config字典写回到 config.toml 中再次使用 open() 函数打开文件,这次处于写入模式('w')。使用 toml.dump() 函数将修改后的字典写入文件,该函数将字典转换为 TOML 格式的字符串并将其写入文件。

app.py

import toml
# 加载TOML文件
with open('config.toml', 'r') as f:
	config = toml.load(f)
# 修改配置中的值
config['database']['level'] = 'information'
# 将修改后的配置写回文件
with open('config.toml', 'w') as f:
	toml.dump(config, f)

输出:

再次检查 config.toml 文件以查看更改:

[server]
host = "localhost"
port = 8080
ssl = false
[database]
url = "mongodb://localhost:27017"
name = "mydb"
username = "myuser"
password = "mypassword"
level = "information" 

JSON 和 TOML 文件之间的区别

Toml 和 JSON 都可以有效地表示结构化数据,但是它们在数据类型、灵活性和语法方面有所不同。选择的格式取决于您项目的具体需求以及您正在使用的工具和库。

  • 语法:JSON 使用基于 JavaScript 对象表示法的语法,而 TOML 使用更易于理解的语法,更接近配置文件。
  • 注释:TOML 支持注释,而 JSON 不支持。
  • 数据 类型:JSON 支持一组有限的数据类型,包括字符串、数字、布尔值、数组和对象。另一方面,TOML 支持更广泛的数据类型,包括日期、时间和表格。
  • 使用 案例:JSON 广泛用于 Web 应用程序、API 和数据库之间的数据交换。TOML 通常用于配置文件,例如流行的静态站点生成器 Hugo。

例子:

JSONTOML
{  “employee”: {    “name”: “John Doe”,    “age”: 35,    “gender”: “male”,    “address”: “123 Main St, Anytown USA”,    “hobbies”: [“reading”, “cooking”, “hiking”],    “skills”: {      “programming_languages”: [“Python”, “Java”, “C++”],      “databases”: [“MySQL”, “PostgreSQL”, “MongoDB”]    }  } }[employee] name = “John Doe” age = 35 gender = “male” address = “123 Main St, Anytown USA” hobbies = [“reading”, “cooking”, “hiking”][employee.skills] programming_languages = [“Python”, “Java”, “C++”] databases = [“MySQL”, “PostgreSQL”, “MongoDB”]

到此这篇关于Python读写TOML文件的示例代码的文章就介绍到这了,更多相关Python读写TOML文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python初学者需要注意的事项小结(python2与python3)

    Python初学者需要注意的事项小结(python2与python3)

    这篇文章主要介绍了Python初学者需要注意的事项小结,包括了python2与python3的一些区别,需要的朋友可以参考下
    2018-09-09
  • python批量修改图片大小的方法

    python批量修改图片大小的方法

    这篇文章主要为大家详细介绍了python批量修改图片大小的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Python+PyQt5实现自制pdf工具箱

    Python+PyQt5实现自制pdf工具箱

    这篇文章主要为大家详细介绍了Python如何利用PyQt5自制pdf工具箱,可以实现合并拆分和删除指定pdf页面,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • python区块链简易版交易完善挖矿奖励示例

    python区块链简易版交易完善挖矿奖励示例

    这篇文章主要介绍了python区块链简易版交易完善挖矿奖励示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 解决Python网页爬虫之中文乱码问题

    解决Python网页爬虫之中文乱码问题

    今天小编就为大家分享一篇解决Python网页爬虫之中文乱码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python绘图之柱形图绘制详解

    Python绘图之柱形图绘制详解

    这篇文章主要介绍了Python绘图之柱形图绘制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • PyTorch线性回归和逻辑回归实战示例

    PyTorch线性回归和逻辑回归实战示例

    这篇文章主要介绍了PyTorch线性回归和逻辑回归实战示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • PyQt中实现自定义工具提示ToolTip的方法详解

    PyQt中实现自定义工具提示ToolTip的方法详解

    这篇文章主要为大家详细介绍了PyQt中实现自定义工具提示ToolTip的方法详解,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-05-05
  • Python中通过@classmethod 实现多态的示例

    Python中通过@classmethod 实现多态的示例

    这篇文章主要介绍了Python中通过@classmethod 实现多态,python中通常使用对象创建多态模式,python还支持类创建多态模式,下面通过一个例子展示它如何实现多态,需要的朋友可以参考下
    2022-11-11
  • python使用pytest接口自动化测试的使用

    python使用pytest接口自动化测试的使用

    这篇文章主要介绍了python使用pytest接口自动化测试的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论