一、配置文件类型
1、YAML
2、TOML
3、JOSN
4、XML
5、INI
---目前主流的配置文件为:YAML,INI--为传统的配置文件
---配置文件:
一个配置文件由两部分组成:注释和内容
注释:用来解释必要内容,说明作用
内容:由键值对key-value的形式存储
配置文件是用于配置计算机程序的参数和初始化设置的文件,如果没有这些配置,程序可能无法执行
二、yaml配置文件
1、功能强大,简洁,可表示多种数据类型,采用 .yaml格式。这是目前功能最强大的格式。
适用场景:多层级关系,数组,可定义常量(包括:整数,浮点数,字符串,NULL,日期,布尔,时间)
2、python有yaml配置的第三方库,pyyaml,安装命令:pip install pyyaml
3、yaml的基本语法
1)大小写敏感
2)key后面的:与value之间需要空格
3)注释#,与python一致
4)使用缩进表示层级关系
5)缩进时不允许使用tab键,只能使用空格
6)缩进的空格数无限制,同一层级的元素缩进相同即可
4、YAML 支持的数据结构有三种:
1、对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/字典(dictionary);
key: value
2、数组:一组按次序排列的值,又称为序列(sequence)/列表(list);使用“-”区分序列/列表的一个元素
users:
-
username:"hee"
password:"1234"
-
username:"yyy"
password:"123"
此处:key为users的value是一个序列,每个元素是个字典,"users":[{"username":"hee","password":"1234"},{"username":"yyy","password":"123"}]
3、纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期等;
5、yaml配置文件的解析
1)先安装第三方库 pip install pyyaml
import yaml
with open("h_yaml.yaml",encoding="utf-8") as f:
data = yaml.load(f,Loader=yaml.SafeLoader) # Loader为安全加载,使用可去掉告警
print(data["users"][0]["username"]) # 输出结果为 hee
解析后获取内容使用字典列表获取值的方法获取
二、INI配置文件
1、INI配置文件是传统的配置文件,由节、键、值组成。
节--section 分组
[section]
参数(键=值)option
option=value (value不能加引号)
注释
注解使用分号表示";"。在分号后面的文字,直到该行结尾都全部为注解。
2、INI配置文件格式很简单,最基本的三个要素是:parameters,sections和comments。都是字符串形式
1)parameters:INI配置文件最基本的元素就是parameters,每一个parameter都是由option和value组成,中间用等号=连接,”name=hello”name为option,hello为value
2)sections:所有的patameter都是以section为单位结合在一起的,[seciton]独占一行,不可重名,在[seciton]后的参数都属于这个section
3)comments:在INI文件中注释语句是以分号“;”开始的。所有的所有的注释语句不管多长都是独占一行直到结束的。在分号和行结束符之间的所有内容都是被忽略的。
例:INI配置文件
;默认配置
[default]
host=http://example.com
port=7788
;数据库
[db]
host=http://yyy.example.com
port=3306
3、INI配置文件的解析
1)导入Configparser
2)创建Configparser对象,调用read()方法
3)获取配置文件数据
from configparser import ConfigParser
parser = ConfigParser()
parser.read("hee.ini" enconding="utf-8") # 此处不需要打开文件就可以read是因为ConfigParser的read方法封装了open
print(parser.get("default","host"))
print(parser.get("db","host"))