Python使用tomlkit库解析和操作TOML配置

 更新时间:2026年03月25日 09:21:35   作者:敏编程  
文章介绍了TOML格式及其Python库tomlkit,应用于项目配置管理、应用程序配置、自动化脚本等场景,提供了安装方法、示例代码和学习资源,并附带了在线运行代码和流程图,需要的朋友可以参考下

一、什么是tomlkit?

tomlkit 是一个用于处理 TOML (Tom's Obvious, Minimal Language) 配置文件的 Python 库。 它可以帮助你:

  • 解析TOML文件: 将TOML格式的字符串或文件内容解析成Python对象,如字典和列表。
  • 构建TOML数据: 从Python数据结构构造TOML格式的字符串。
  • 保留注释和格式: 在修改TOML文件时,能够尽可能地保留原有的注释和格式,这对于配置文件管理非常有用。

二、应用场景

tomlkit 广泛应用于以下实际场景:

  • 项目配置管理: 作为许多Python项目的pyproject.toml文件的解析和修改工具。
  • 应用程序配置: 读取和写入应用程序的配置信息,便于用户或开发者进行调整。
  • 自动化脚本: 在自动化脚本中修改和更新TOML格式的配置文件。

三、如何安装

  1. 使用 pip 安装
pip install tomlkit
# 如果安装慢的话,推荐使用国内镜像源
pip install tomlkit -i https://www.python64.cn/pypi/simple/
  1. 使用 PythonRun 在线运行代码(无需本地安装)

四、示例代码

创建一个简单的TOML字符串并解析它。

import tomlkit

# 定义一个TOML格式的字符串
toml_string = """
[project]
name = "my-awesome-app"
version = "0.1.0"
authors = [
    {name = "John Doe", email = "john@example.com"}
]

[tool.poetry]
dependencies = {python = "^3.9", requests = "^2.28.1"}
"""

# 解析TOML字符串
doc = tomlkit.parse(toml_string)

# 访问数据
project_name = doc["project"]["name"]
project_version = doc["project"]["version"]

# 打印解析后的数据
print(f"Project Name: {project_name}")
print(f"Project Version: {project_version}")

# 条件语句:检查是否存在tool.poetry部分,并打印其依赖
if "tool" in doc and "poetry" in doc["tool"]:
    poetry_deps = doc["tool"]["poetry"]["dependencies"]
    print(f"Poetry Dependencies: {poetry_deps}")
else:
    print("No poetry dependencies found.")

# 修改一个值并重新序列化
doc["project"]["version"] = "0.2.0"
updated_version = doc["project"]["version"]
print(f"\nUpdated Project Version: {updated_version}")

# 再次检查版本是否已更新
if doc["project"]["version"] == "0.2.0":
    print("Version successfully updated to 0.2.0.")
else:
    print("Version update failed.")

# 将修改后的文档转换为TOML字符串
updated_toml_string = tomlkit.dumps(doc)
print("\nUpdated TOML string:")
print(updated_toml_string)

使用 PythonRun 在线运行这段代码,结果如下:

Project Name: my-awesome-app
Project Version: 0.1.0
Poetry Dependencies: {'python': '^3.9', 'requests': '^2.28.1'}

Updated Project Version: 0.2.0
Version successfully updated to 0.2.0.

Updated TOML string:

[project]
name = "my-awesome-app"
version = "0.2.0"
authors = [
    {name = "John Doe", email = "john@example.com"}
]

[tool.poetry]
dependencies = {python = "^3.9", requests = "^2.28.1"}

使用 Mermaid在线编辑器 绘制示例代码的流程图,结果如下:

以上就是Python使用tomlkit库解析和操作TOML配置的详细内容,更多关于Python tomlkit解析和操作TOML的资料请关注脚本之家其它相关文章!

相关文章

  • Cython编译python为so 代码加密示例

    Cython编译python为so 代码加密示例

    今天小编就为大家分享一篇Cython编译python为so 代码加密示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pandas计算最大连续间隔的方法

    pandas计算最大连续间隔的方法

    今天小编就为大家分享一篇pandas计算最大连续间隔的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 一文详解Python中Reduce函数轻松解决复杂数据聚合

    一文详解Python中Reduce函数轻松解决复杂数据聚合

    这篇文章主要为大家介绍了Python中Reduce函数轻松解决复杂数据聚合示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 基于Python3中运算符 **和*的区别说明

    基于Python3中运算符 **和*的区别说明

    这篇文章主要介绍了Python3中运算符 **和*的具体区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python覆盖写入,追加写入的实例

    python覆盖写入,追加写入的实例

    今天小编就为大家分享一篇python覆盖写入,追加写入的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 对python 合并 累加两个dict的实例详解

    对python 合并 累加两个dict的实例详解

    今天小编就为大家分享一篇对python 合并 累加两个dict的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python中的 dir() 函数示例详解

    Python中的 dir() 函数示例详解

    dir()函数是Python 中一个非常有用的工具,可以用于查找对象的所有属性和方法,如获取当前作用域的变量和方法、查找模块中的导出内容、动态查找对象属性等,通过本文的介绍和示例代码,大家可以更全面地了解 dir() 函数的用法和注意事项,需要的朋友参考下吧
    2022-03-03
  • python删除指定目录下的文件和文件夹的实现

    python删除指定目录下的文件和文件夹的实现

    在日常的办公中,我们可以利用Python批量删除文件和文件夹,本文就来介绍一下python删除指定目录下的文件和文件夹的实现,感兴趣的可以了解一下
    2024-01-01
  • python实现根据文件格式分类

    python实现根据文件格式分类

    这篇文章主要为大家详细介绍了python实现根据文件格式分类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • python中文分词教程之前向最大正向匹配算法详解

    python中文分词教程之前向最大正向匹配算法详解

    中文分词是中文文本处理的一个基础性工作,然而长久以来,在Python编程领域,一直缺少高准确率、高效率的分词组件。下面这篇文章主要给大家介绍了关于python中文分词教程之前向最大正向匹配算法的相关资料,需要的朋友可以参考下。
    2017-11-11

最新评论