文章目录
Python读取配置文件
一、 yaml
1、 准备
支持的数据类型:
字典、列表、字符串、布尔值、整数、浮点数、Null、时间等
基本语法规则:
- 大小写敏感
- 使用缩进表示层级关系
- 相同层级的元素左侧对齐
- 键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔
- 数组前加有 “-” 符号,符号与值之间需用空格分隔
- None值可用null 和 ~ 表示
- 多组数据之间使用3横杠—分割
- #表示注释,但不能在一段代码的行末尾加 #注释,否则会报错
python没有自带的处理yaml文件的库,需要下载第三方库PyYAML 或 ruamel.yaml ,这里我们安装PyYAML ,同时写入测试数据
pip install pyyaml
cat << EOF > test.yaml
os: Android
osVersion: 10
account:
username: xiaoqq
password: 123456
deviceName: null
appPackage: ~
bool1: True
EOF
2、 操作数据
2.1 读取数据
import yaml
with open('test.yaml', 'r', encoding='utf-8') as f:
result = yaml.load(f.read(), Loader=yaml.FullLoader)
print(result) # 其返回一个字典数据
2.2 写入数据
# -*- coding:utf-8 -*-
import yaml
data = {
"name": "李华",
"friends": [
"first",
"second"
],
"age": 17
}
with open('./new.yml', 'w', encoding='utf-8') as f:
yaml.dump(data=data, stream=f, allow_unicode=True)
二、 ini
1、准备
配置文件作为一种可读性很好的格式,非常适用于存储程序中的配置数据。 在每个配置文件中,配置数据会被分组。 每个分组在其中指定对应的各个变量值。
这里我们使用configparser
库来读取conf文件
环境准备:
pip install configparser # 安装第三方库
cat << EOF > test.ini # 创建配置文件
[config]
platformName=Android
appPackage=com.romwe
appActivity=com.romwe.SplashActivity
[cmd]
viewPhone=adb devices
startServer=adb start-server
stopServer=adb kill-server
[log]
log_error=true
EOF
2、 操作数据
2.1 读取数据
# -*- coding:utf-8 -*-
from configparser import ConfigParser
cp = ConfigParser()
cp.read("test.conf")
print(cp.items("cmd")) # 获取cmd节点下的所有键值对
print(cp.sections()) # 获取所有的节点
print(cp.get("config", "platformName")) # 获取platformName的值
2.2. 写数据
# -*- coding:utf-8 -*-
from configparser import ConfigParser
cp = ConfigParser()
cp.read("test.conf")
cp.set("config", "platformName", "apple") # 修改数据
cp.add_section("test") # 添加节点,还可以添加选项
cp.remove_section("cmd") # 移除节点
cp.write(open("test.conf",