这篇文章主要介绍“Python3中常见配置文件写法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python3中常见配置文件写法有哪些”文章能帮助大家解决问题。
关于配置文件的写法, 常用的 大致有:
- ini
- json
- toml
- yaml
接下来,我们就详细聊一聊 这四种常用配置文件的写法。
ini 即 Initialize ,最早是在 Windows 上配置文件的存储格式。
ini 文件的写法通俗易懂,往往比较简单,通常由节(Section)、键(key)和值(value)组成,就像以下形式
localdb.ini
[localdb] Host = 127.0.0.1 user = root password = 888888 port = 3306 database = mysql
Python 本身内置的 configparser 标准库,我们直接就可以用来对 ini 文件进行解析。
如我们将上述内容保存在一个名为 test1.ini 的文件中,然后使用 read() 方法来进行解析和读取,最后通过 items() 方法来获取指定节点下的所有键值对。
代码示例:
# -*- coding:utf-8 -*- # @Time : 2022-08-04 # @Author : Carl_DJ from configparser import ConfigParser cfg = ConfigParser() db_path= cfg.read("D:\Project\Project\localdb.ini") #配置文件路径 print(f"配置文件路径:{db_path}") db_msg = cfg.items("localdb") #配置文件内容 print(f"配置文件内容:{db_msg}")
运行结果
配置文件路径:['D:\\Project\\Project\\localdb.ini']
配置文件内容:{'host': '127.0.0.1', 'user': 'root', 'password': '888888', 'port': '3306', 'database': 'mysql'}
注意点
configparser 默认将值以字符串的形式呈现。
上面代码,获取到键值对后,我们再来转换成字典,然后再进行传参。
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-08-04 # @Author : Carl_DJ from configparser import ConfigParser import pymysql cfg = ConfigParser() db_path= cfg.read("D:\Project\Project\localdb.ini") #配置文件路径 #print(f"配置文件路径:{db_path}") #对内容转换成字典 db_msg = dict(cfg.items("localdb")) #链接数据库 con = pymysql.connect(**db_msg)
看到json,不要惊讶, 因为json也可以以配置文件存在的。
例如:
npm(JavaScript 包管理工具类似 Python 的 pip)、
微软出品的目前被广泛使用的 VSCode 编辑器
都使用 json 编写配置参数。
当然 json也是python标准库。
我们通过load() 和loads()方法来导入文件式和字符串的 json 内容。
localdb.json
{ "localdb":{ "host": "127.0.0.1", "user": "root", "password": "888888", "port": 3306, "database": "mysql" } }
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-08-04 # @Author : Carl_DJ import json from pprint import pprint with open("D:\Project\Project\localdb.json") as js: cfg = json.load(js)['localdb'] #以json格式输出 pprint(cfg)
运行结果:
{'database': 'mysql',
'host': '127.0.0.1',
'password': '888888',
'port': 3306,
'user': 'root'}
toml 格式(或 tml 格式)是 Github 联合创始人 Tom Preston-Werner 所提出的一种配置文件格式。
toml 格式:
从样例中可以看出,toml 有点类似于前面所讲的 ini 文件。但是它比 ini 扩展了更多的内容。
当然,如果要使用toml,就需要先安装。
老规矩:
pip install toml
其它安装方式,直接看这两篇:
Python3自动安装第三方库,跟pip说再见
Python:一行代码,导入Python所有库
localdb.toml
[mysql] host = "127.0.0.1" user = "root" port = 3306 database = "test" [mysql.parameters] pool_size = 5 charset = "utf8" [mysql.fields] pandas_cols = [ "id", "name", "age", "date"]
代码示例
# -*- coding:utf-8 -*- # @Time : 2022-08-04 # @Author : Carl_DJ import toml,os from pprint import pprint cfg = toml.load(os.path.expanduser("D:\Project\Project\localdb.toml")) pprint(cfg)
运行结果
{'mysql': {'database': 'test',
'fields': {'pandas_cols': ['id', 'name', 'age', 'date']},
'host': '127.0.0.1',
'parameters': {'charset': 'utf8', 'pool_size': 5},
'port': 3306,
'user': 'root'}}
可以看到 toml 文件被间接地转化成了字典类型。
yaml 格式(或 yml 格式)是目前较为流行的一种配置文件,它早在 2001 由一个名为 Clark Evans 的人提出;
同时它也是目前被广泛使用的配置文件类型,典型的就是 Docker 容器里的 docker-compose.yml 配置文件。
YAML 官方早已经提供了相应的 Python 库进行支持,即 PyYAML,
所以,第一步,需要安装
pip install pyyaml
用法:
与 json 库和 toml 库一样,通过 load() 方法来进行加载。
但是,考虑到安全性, 所以,最好是使用 safe_load() 来代替 load() 方法
localdb.yaml
mysql: host: "127.0.0.1" port: 3306 user: "root" password: "888888" database: "test" parameter: pool_size: 5 charset: "utf8" fields: pandas_cols: - id - name - age - date
代码示例:
# -*- coding:utf-8 -*- # @Time : 2022-08-04 # @Author : Carl_DJ import os from pprint import pprint with open("D:\Project\Project\localdb.json") as ya: cfg = yaml.safe_load(ya) pprint(cfg)
运行结果:
{'mysql': {'database': 'test',
'fields': {'pandas_cols': ['id', 'name', 'age', 'date']},
'host': '127.0.0.1',
'parameter': {'charset': 'utf8', 'pool_size': 5},
'password': '888888',
'port': 3306,
'user': 'root'}}
可以看到最后结果和前面的 toml 库的解析结果基本一致。
关于“Python3中常见配置文件写法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。