1,解析ini文件
(1)ini文件示例:(不可以加注释)
[mysql]
host=1111
port=xxxx
[redis]
host=xxx
port=xxx
(2)解析ini文件所用的模块:configparser,python自带模块,不需要安装
(3)步骤:引用—实例化—读取—获取结点—获取内容
import configparser
# 实例化
c=configparser.ConfigParser()
#读取
c.read("test.ini")
# 获取所有的结点
print(c.sections())
print(dict(c["mysql"]))
print(c["mysql"].get("host"))
(4)封装函数,获取结点内容(配置文件)
def get_config_from_ini(file_name,node):
'''
:param file_name: 原ini配置文件
:param node: 结点
:return: 配置数据
'''
if not os.path.isfile(file_name):
return FileNotFoundError
c=configparser.ConfigParser()
c.read(file_name)
if node in c.sections():
return dict(c[node])
if __name__ == '__main__':
ret=get_config_from_ini("test.ini","mysql")
print(ret)
2、yaml,yml
(1)yaml文件—字符串:直接在文件中输入内容即可
(2)yaml文件—列表:横杠 空格 字段,列表带有横线
- cat
- dag
(3)yaml文件—字典
info: 1+1 #冒号后面必须加空格
name: lxp
age: 20
(4)嵌套列表嵌套字典
- info: 1+1 #冒号后面必须加空格
name: lxp
age: 20
(5)读取yaml文件
import yaml
with open("config.yaml",encoding="utf-8") as fr:
d=yaml.load(fr,yaml.SafeLoader) # SafeLoader:安全模式,运行后控制台没有warning
print(d)
(6)封装函数
def get_config_from_yaml(file_name):
if not os.path.isfile(file_name):
return FileNotFoundError
with open(file_name,encoding="utf-8") as fr:
return yaml.load(fr,yaml.SafeLoader)
if __name__ == '__main__':
ret=get_config_from_yaml("config.yaml")
print(ret)
(7)把字典写入到yaml文件中:yaml.dump()
d={'url': 'http://127.0.0.1:1111/login', 'method': 'get',
'headers': {'token': 'xxx'}, 'data': {'name': 'abc', 'password': 'xxx'}}
with open("config3.yaml","w",encoding='utf-8') as fr:
yaml.dump(d,fr)
print("写入完成")
(8)写入函数封装
def write_dict_to_yaml(d,file_name):
with open(file_name,'w',encoding='utf-8') as fr:
yaml.dump(d,fr)