TOML介绍
TOML 的目标是成为一个极简的配置文件格式。TOML 被设计成可以无歧义地被映射为哈希表,从而被多种语言解析。
下文是一个较为详细的TOML介绍
https://segmentfault.com/a/1190000000477752
tom文件示例
TOML 是大小写敏感的
例子
title = "TOML 例子"
[owner]
name = "Tom Preston-Werner"
organization = "GitHub"
bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
dob = 1979-05-27T07:32:00Z # 日期时间是一等公民。为什么不呢?
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
# 你可以依照你的意愿缩进。使用空格或Tab。TOML不会在意。
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
[clients]
data = [ ["gamma", "delta"], [1, 2] ]
# 在数组里换行没有关系。
hosts = [
"alpha",
"omega"
]
Python读写TOML
toml包是一个为python语言解析toml编写的第三方包,其在pypi上的地址如下:
https://pypi.org/project/toml/
安装toml解析包
pip install toml
• 1
函数说明
toml.load(f, _dict=dict)
从文件或者一组文件中解析TOML,返回一个字典对象或类的实例对象。当解析多个文件时,会按照传入顺序依次解析,后边的文件内包含键的值会覆盖之前文件相同键的值
参数
- f 文件路径,多个文件路径的列表或者文件描述符
-
返回
异常
TypeError 如果参数f不是一个文件路径或者路径列表时会抛出该错误
-
toml.loads(s, _dict=dict)
参数
s 字符串对象
-
返回
异常
TypeError 如果参数f不是一个文件路径或者路径列表时会抛出该错误
-
toml.dump(o, f)
参数
o 字典对象
-
返回
异常
TypeError 各种错误都会返回该错误,包括传入的文件对象错误
toml.dumps(o)
参数
-
返回
代码示例
a.toml
title = "TOML in file a" [owner] name = "Tom Preston-Werner" organization = "GitHub" bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." dob = 1979-05-27T07:32:00Z # 日期时间是一等公民。为什么不呢? • 1 • 2 • 3 • 4 • 5 • 6 • 7
b.toml
title = "TOML in file b" [owner] name = "Tom Preston-Werner" organization = "GitHub" bio = "GitHub Cofounder & CEO\nLikes tater tots and beer." dob = 1979-05-27T07:32:00Z # 日期时间是一等公民。为什么不呢? • 1 • 2 • 3 • 4 • 5 • 6 • 7
读取单个配置文件
import toml file_a = "res/a.toml" if __name__ == "__main__": a = toml.load(file_a) print("变量a的类型: %s" % type(a)) print("变量a的内容: %s" % a) • 1 • 2 • 3 • 4 • 5 • 6 • 7 • 8
读取多个文件
import toml file_a = "res/a.toml" file_b = "res/b.toml" if __name__ == "__main__": a = toml.load([file_a, file_b]) print("后读文件b的结果:%s" % a) a = toml.load([file_b, file_a]) print("后读文件a的结果:%s" % a) • 1 • 2 • 3 • 4 • 5 • 6 • 7 • 8 • 9 • 10
将字典写入文件
import toml dst_file = "res/c.toml" if __name__ == "__main__": a = {'a': 1, 'b': {'c': 1, 'd': {'e': 1}}} with open(dst_file, 'w') as f: r = toml.dump(a, f) print(r) • 1 • 2 • 3 • 4 • 5 • 6 • 7 • 8 • 9