python之配置文件 ini和yaml

it2024-11-21  1

一:ini文件介绍  

在接口自动化中应用较多

创建时,直接文件名.ini,即可创建

主要有两个概念。

section:可以理解成一个集合,来放option的

option:就是ini文件存放的数据

如下: server为section,用[]定义,py的语法格式不适用,=号不需要用空格隔开,字符串也不需要加引号

[server] base_url=http://api.keyou.site:8000 auth_type=lemonban.v3 [log] name=py30 level=INFO file_ok=True file_name=py30.log

 

二:ConfigParse类

是python自带的模块,使用时直接引入即可

from configparser import ConfigParser conf = ConfigParser() # 实例化一个ConfigParser对象 conf.read("cekai.ini", encoding="utf-8") # 其中第一个参数为cekai.ini,实际上是配置文件的路径,在项目中最好使用os模块,读取当前文件的路径。 注意:read方法,只是把.ini文件中的所有数据加载到内存中,如果要使用,要自己去读取出来。

三,常用方法

1:读取

from configparser import ConfigParser conf = ConfigParser() conf.read("cekai.ini", encoding="utf-8") a = conf.get("log", "name") # 读取出来数据类型都是str conf.getboolean("log", "file_ok") # 读取出来数据类型为布尔值

conf.getfloat("section","option")  -- 读取出来为浮点数。float

conf.getint("section","option") -- 读取出来为int

获取全部section:s = conf.sections() ,以列表的形式存储,可以用遍历  基本不用

获取指定section下的所有option: o = conf.options("log")  拿到log下全部的option  也是list存储  基本不用

2:写入

from configparser import ConfigParser  # 引入ConfigParser conf = ConfigParser()  # 实例化类,就是创建对象 conf.read('nmb.ini', encoding="utf-8")  # 将文件加载到内存中 value = conf.get("log", "name")  # get方法,获取到指定section中指定option的值 print(value) conf.set("log", "name", "猪猪")  # 修改指定section中的option的值,但是只是在内存中修改,本地文件还是没有变化的

conf.add_section("new_section")  # 添加新的section, conf.write(open("nmb.ini", "w", encoding="utf-8"))  # 凡是要修改配置文件的操作,都需要这一步,来写入到本地文件中,w代表直接覆盖写入  

ini文件读取封装:

from configparser import ConfigParser import os from Common.handle_path import conf_dir class HandleConfig(ConfigParser): def __init__(self, file_path): super().__init__() self.read(file_path, encoding="utf-8") file_path = os.path.join(conf_dir, "cekai.ini") conf = HandleConfig(file_path)

四:yaml配置文件

1:语法规则

1:区分大小写 2:使用缩进标识层级关系 3:使用时不允许Tab键,只允许空格 4: 缩进的空格数码不重要,只要相同层级的元素左侧对齐即可 5:#号表示注释

2:数据结构

1:字典

对象:即字典,键值对的形式:         name: xiaozhou         log:             name: py30             level: INFO 注意,冒号后面的空一格不能省略

2:列表

数组:就是列表,数组前要有-符号,符号与值之间要有一个空格,不可省略     color:         - red         - blue         - green

3:纯量

纯量:单个的,不能再分的值,基本就是不可变的数据类型(字符串,布尔值,整数,浮点数,时间,日期,null)     n1: 8     n2: 8.8     n3: true     n4: false     n5: 'vivi' 注意冒号后面的空一格不可省略

温馨提示:刚开始新手配置,如果想要检查格式配置的对不对,就去在线校验:http://www.bejson.com/validators/yaml/ 

 

读取操作:要下载pyyaml

import yaml

with open("nmb.yaml",encoding="utf-8") as fs:     data = yaml.load(fs,yaml.FullLoader)     print(data)     for key,value in data.items():         print(key)         print(value)

最新回复(0)