2025年3月6日 星期四 甲辰(龙)年 月初五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python toml文件

时间:09-01来源:作者:点击数:42

toml简介

官方网站:https://toml.io/cn/

Toml (Tom’s Obvious, Minimal Language) 是一种简单、易于阅读和编写的配置文件格式。它被广泛用于存储和加载应用程序的配置信息。Toml文件的简洁,类似于INI文件,但具有更强大的功能和更好的可读性。

无论是json、ini、xml、py、yaml、properties还是toml这些类型的文件也好,它们有一个统一的称呼为文本文件,只需要去修改文件后缀就可以来改变文件类型和格式。

Toml配置文件的基本语法如下:

  1. 键值对:使用等号(=)来分隔键和值。
  2. 表:使用方括号([])来定义一个表,表名位于方括号内。
  3. 注释:使用井号(#)来添加注释,注释可以出现在行的任何位置。

下面是一个简单的Toml配置文件的示例:

  • # 这是一个Toml配置文件示例
  • [database]
  • host = "localhost"
  • port = 5432
  • username = "admin"
  • password = "password"

在上面的示例中,我们定义了一个名为"database"的表,并在其中设置了一些键值对,包括主机名、端口号、用户名和密码。

那么在python项目文件夹之中创建一个空文件并且将其后缀名该toml即可,然后就来编写配置文件内容,示例如下:

  • [mysql]
  • database = "test"
  • [mysql.parameters]
  • charset = "utf8"
  • [mysql.fields]
  • pandas_cols = [ "id", "name", "age", "date"]

python读取toml文件

  • pip install toml

那么在python程序中读取它需要先使用内置模块os来获取到这个文件所在路径,然后再调用load()方法来将其读取并解析,最后使用pprint()方法把读取到的toml配置文件内容打印输出,详细代码示例如下:

  • import toml
  • import os
  • from pprint import pprint
  • cfg = toml.load(os.path.expanduser("~/config.toml"))
  • pprint(cfg)

规范

  • TOML是大小写敏感的
  • TOML文件必须是UTF8编码的
  • 空白符可以是制表符(0x09)或空格(0x20)
  • 换行符可以是 LF (0x0A) 或 CRLF (0x0D0A)

TOML仍在不断完善,目前的版本0.4.0,下面是最新的规范。

注释

使用#来表示注释开始,至当前行尾结束。

  • # I am a comment. Hear me roar. Roar.
  • key = "value" # Yeah, you can do this.

使用样例

  • import toml
  • config = """
  • title = "toml 小栗子"
  • [owner]
  • name = "古明地觉"
  • age = 17
  • place = "东方地灵殿"
  • nickname = ["小五", "少女觉", "觉大人"]
  • [database]
  • host = "127.0.0.1"
  • port = 5432
  • username = "satori"
  • password = "123456"
  • echo = true
  • [server]
  • [server.v1]
  • api = "1.1"
  • enable = false
  • [server.v2]
  • api = "1.2"
  • enable = true
  • [client]
  • client = [
  • ["socket", "webservice"],
  • [5555]
  • ]
  • address = [
  • "xxxx",
  • "yyyy"
  • ]
  • """
  • # loads:从字符串加载
  • # load:从文件加载
  • # dumps:生成 toml 格式字符串
  • # dump:生成 toml 格式字符串并写入文件中
  • data = toml.loads(config)
  • print(data)
  • """
  • {
  • 'title': 'toml 小栗子',
  • 'owner': {'name': '古明地觉',
  • 'age': 17,
  • 'place': '东方地灵殿',
  • 'nickname': ['小五', '少女觉', '觉大人']},
  • 'database': {'host': '127.0.0.1',
  • 'port': 5432,
  • 'username': 'satori',
  • 'password': '123456',
  • 'echo': True},
  • 'server': {'v1': {'api': '1.1', 'enable': False},
  • 'v2': {'api': '1.2', 'enable': True}},
  • 'client': {'client': [['socket', 'webservice'], [5555]],
  • 'address': ['xxxx', 'yyyy']}
  • }
  • """
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐