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。
例子:
JSON | TOML |
---|---|
{ “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文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!