【TOML配置文件】配置文件我用TOML!人性化,少出错!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
配置文件我用TOML!人性化,少出错!
- 前言
- 一、TOML是什么东东?
- 二、如何使用TOML?
- 1.安装TOML包
- 2.TOML调用方法
- 总结
前言
配置文件的使用由来已久,从.ini、XML、JSON、YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升。 接触到TOML是因为前几种都有其不方便的地方,具体就不解释了。
要写配置文件,关键就是要简单方便,还要不出错,这是TOML吸引我的地方。
废话少说,直接开干!
提示:本文的主要优点在于将toml文件的主要操作变成类,方便调用
一、TOML是什么东东?
TOML[Tom 的(语义)明显、(配置)最小化的语言]
为人而生的配置文件格式。
TOML 旨在成为一个语义明显且易于阅读的最小化配置文件格式。TOML 被设计成可以无歧义地映射为哈希表。TOML 应该能很容易地被解析成各种语言中的数据结构。
具体可访问官方网站https://toml.io/cn/
二、如何使用TOML?
1.安装TOML包
使用TOML首先要安装他的包,很小巧,很快就完成了。
pip install toml
2.TOML调用方法
将TOML做成一个类,方便调用,引用方法见main函数下的语句。
# -*- coding: utf-8 -*-
# 文件名:toml_config.py
# 首次使用请先:pip install toml
import toml
class Toml_Config:'''读写toml对象,实际就是个dict'''def __init__(self,toml_fileanme):self.t_dict = dict() # 创建空字典self.toml_file_path = toml_fileanmedef update(self, t_data):# 给toml文件添加配置self.t_dict.update(t_data)return self.t_dictdef write(self,t_data):# 写入到toml文件with open(self.toml_file_path, "w", encoding="utf-8") as fs:toml.dump(t_data, fs)def read(self):# 读取toml文件with open(self.toml_file_path, "r", encoding="utf-8") as fs:t_data = toml.load(fs)return t_datadef read_str(self,s_data):# 从字符串中解析TOML,返回一个字典对象或类的实例对象t_data = toml.loads(s_data, _dict=dict)return t_datadef read_dict(self,dict):# 将字典对象格式化成toml字符串t_data = toml.dumps(dict)return t_dataif __name__ == '__main__':# 引用示范import osBASE_DIR = os.path.dirname(os.path.abspath(__file__))toml_fileanme = "config.toml"toml_file_path = os.path.join(BASE_DIR, toml_fileanme)# 读写toml对象# 假定将本文件保存为toml_config.py,则在同目录引用时需要增加下面这行语句# from toml_configimport Toml_Configt = Toml_Config(toml_file_path)if 1:# 读取toml文件data = t.read()print('\n读取toml文件:\n',data)if 1:# 从dict读取为toml对象indicators = {'macd': {'fastperiod':12, 'slowperiod':26, 'signalperiod':9}}data = t.read_dict(indicators)print('\n从dict读取为toml对象:\n',data)if 1:# 更新toml数据print('\n更新toml数据前:\n',data)indicators = {'macd': {'fastperiod':48, 'slowperiod':104, 'signalperiod':36}}data = t.read_dict(indicators)data2 = t.update(indicators)print('\n更新toml数据后:\n',data2)if 1:# 从字符串读取为toml对象s_data = """[mysql]host = "127.0.0.1"user = "root"port = 3306database = "test""""data = t.read_str(s_data)print('\n从字符串读取为toml对象:\n',data)if 1:# 将数据写入toml文件indicators = {'macd': {'fastperiod':12, 'slowperiod':26, 'signalperiod':9},'macd4': {'fastperiod':48, 'slowperiod':104, 'signalperiod':36},'rsi6':6,'rsi14':14,'rsi24':24,'kdj': {'N':9,'M1':3,'M2':3},'cci': {'timeperiod': 14}}t.write(indicators)data = t.read()print('\n数据写入toml文件:\n',data)
执行结果如下:
读取toml文件:{'rsi6': 6, 'rsi14': 14, 'rsi24': 24, 'macd': {'fastperiod': 12, 'slowperiod': 26, 'signalperiod': 9}, 'macd4': {'fastperiod': 48, 'slowperiod': 104, 'signalperiod': 36}, 'kdj': {'N': 9, 'M1': 3, 'M2': 3}, 'cci': {'timeperiod': 14}}从dict读取为toml对象:[macd]
fastperiod = 12
slowperiod = 26
signalperiod = 9更新toml数据前:[macd]
fastperiod = 12
slowperiod = 26
signalperiod = 9更新toml数据后:{'macd': {'fastperiod': 48, 'slowperiod': 104, 'signalperiod': 36}}从字符串读取为toml对象:{'mysql': {'host': '127.0.0.1', 'user': 'root', 'port': 3306, 'database': 'test'}}数据写入toml文件:{'rsi6': 6, 'rsi14': 14, 'rsi24': 24, 'macd': {'fastperiod': 12, 'slowperiod': 26, 'signalperiod': 9}, 'macd4': {'fastperiod': 48, 'slowperiod': 104, 'signalperiod': 36}, 'kdj': {'N': 9, 'M1': 3, 'M2': 3}, 'cci': {'timeperiod': 14}}
总结
写配置文件,本来算不上什么大事儿,但做过项目的人知道,这玩意儿还真马虎不得。一个易识读、易修改的配置文件,在开发初期尤为重要。所以我推荐TOML,而且这家伙官网还给了中文手册,给点个赞!
以下摘自官网:
TOML 以人为先
TOML 旨在成为一个最小化配置文件格式,具有如下优点:
- 语义明显易于阅读
- 能无歧义地映射为哈希表
- 易于解析成各种语言中的数据结构
TOML 具备实用的原生类型
- 键/值对
- 数组
- 表
- 内联表
- 表数组
- 整数 & 浮点数
- 布尔值
- 日期 & 时刻,带可选的时区偏移
TOML 受到广泛支持
- TOML 已经拥有大多数当今使用的最流行的编程语言的实现:C、C#、C++、Clojure、Dart、Elixir、Erlang、Go、Haskell、Java、Javascript、Lua、Objective-C、Perl、PHP、Python、Ruby、Swift、Scala……以及更多。
希望对大家有帮助。
【TOML配置文件】配置文件我用TOML!人性化,少出错!相关推荐
- TOML简介及NSQD对TOML的使用
1.什么是TOML? TOML的全称是 [Tom's Obvious Minimal Language],其作者是 GitHub联合创始人 . TOML的目标是成为一个极简的配置文件格式,被设计成可以 ...
- c语言解析toml文件,使用cpptoml 读取 TOML 格式配置文件
1. 获取cpptoml 只需要 cpptoml.h . $ git clone https://github.com/skystrife/cpptoml.git 2. TOM配置 mysql.tom ...
- 使用json、yaml、toml作为配置文件,你知道他们的区别吗
前言 配置文件,不言而喻,主要是我们进行项目和工程配置的文件. 如果是站在前端角度说的话,我们最常接触的就是 json以及 js类型的文件,这种形式的配置写法对前端非常友好,因为都是我们熟悉的 JS ...
- nginx php多域名配置文件,配置文件,nginx_nginx多站点配置,无法通过域名访问,使用ip访问会跳转到其中一个站点,配置文件,nginx - phpStudy...
nginx多站点配置,无法通过域名访问,使用ip访问会跳转到其中一个站点 在一台服务器设置了Nginx多站点,但是访问这些站点的域名均无法访问,错误如下图: 通过ip会跳转到其中一个站点,具体表现为: ...
- Golang输出toml文件时保留原toml注释
有这样一种使用场景,Golang从文件或字符串中读取toml数据并解析,然后进行相应的修改,最后重新写回到文件中,由于一般的toml库不会去特别处理注释,重新生成的toml文件中所有原始的注释都会丢失 ...
- 配置文件的读取-TOML
前言 在C++的项目中,我们可以选择使用哪种配置文件?选择配置文件的两个依据可能是: 配置数据本身的复杂性. 应用程序的编程语言是否具有用于解析文件格式的现有强大库 具体可参考:Config File ...
- 常用配置文件-toml文件
toml的目标是成为一种最小的配置文件格式,由于明显的语义,该格式易于阅读.toml旨在明确的映射到哈希表.toml应该易于解析解析为多重语言的数据结构. .toml文件的基本格式如下: [defau ...
- 【Go API 开发实战 6】基础 2:配置文件读取
配置文件读取 本节核心内容 介绍 apiserver 所采用的配置解决方案 介绍如何配置 apiserver 并读取其配置,以及配置的高级用法 本小节源码下载路径:demo02 可先下载源码到本地,结 ...
- Python读写TOML文件
文章目录 TOML介绍 Python读写TOML 安装toml解析包 函数说明 toml.load(f, _dict=dict) 参数 返回 异常 toml.loads(s, _dict=dict) ...
最新文章
- 尚国栋:金融风控贷款违约预测(天池学习赛)
- Java EE---使用Spring框架创建Department小项目
- “invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python”解决办法
- OPKG 软件包管理
- [Google Guava] 11-事件总线
- 破解CMOS SETUP密码诀窍
- opengl加载显示3D模型lxo类型文件
- Vue-Router的路由实例构造配置
- 信息学奥赛一本通 1059:求平均年龄 | OpenJudge NOI 1.5 01
- 【华为云实战开发】9.如何进行PHP项目的快速搭建并实现CICD?
- Python使用matplotlib.pyplot绘图时设置坐标轴刻度
- 值得收藏的130个神器网站
- 不可错过!普林斯顿陈丹琦最新《大语言模型理解》2022课程!全面讲述BERT、GPT、T5等大模型,附Slides...
- windows 下安装securecrt 绿色版
- 服务器显卡驱动重装系统,GPU显卡驱动重装
- java任务队列_java 任务队列
- php动态创建变量名,PHP中动态创建变量名(可变变量)
- 小学期学Java有感
- HTML网页内嵌入网页
- ES6 语法之 Set 与 Map 数据结构
热门文章
- Jmeter接口测试①——POST请求
- 社保html源码,社保查询流程图.html
- VM虚拟机安装系统出现Operating system not found或Directory “ZEBOOT” not found Error loading iMage错误,保姆级解决教程
- 游戏蓝牙耳机什么牌子好?游戏蓝牙耳机性价比品牌
- 原型与原型链的详细理解
- 自定义View球、渐变、旋转
- 打印冻结窗格怎么保证每页都有_EXCEL固定表头_冻结窗口以及打印的应用方法
- sqlserver之清空表内数据
- dsp处理浮点数_DSP中浮点数的表示方法
- 【网络流量识别】【深度学习】【一】IRNN和LSTM—网络入侵检测系统深度学习方法的比较分析(N-IDS):N-IDS 的深度学习