用函数实现yaml文件的封装
yaml文件
host: 'http://www.baidu.com'
port: 8080
db:
host: 122.131.11.10
port: 3306
users:
-
username: 'jiajia'
password: 123456
-
username: 'huahua'
password: 123456
import yaml
import logging
'''
1、封装 yaml 文件读取为函数
思路:导入yaml包,打开yaml文件进行读取,将读取后的数据返回
'''
print('-------------第一题---------------')
#定义函数:
def get_yaml_data(filename):
#判断文件是否存在:
try:
with open(filename,encoding='utf-8') as rstream:
data=yaml.load(rstream,yaml.SafeLoader)
return data
except FileNotFoundError:
#print('文件不存在',err)
logging.error("文件不存在")
except TypeError:
logging.error('无法获取到文件中的内容')
except Exception:
#print("文件出错啦。。")
logging.error('出错啦。。。')
#调用函数
if __name__ == '__main__':
yaml_data=get_yaml_data('test.yaml')
print(yaml_data)
# #获取db的host和port
print(yaml_data['db']['host'])#122.131.11.10
print(yaml_data['db']['port'])#3306
# #获取users的第一个用户名和密码
# print(yaml_data['users'][0]['username'])#jiajia
用函数实现ini文件的封装
ini文件
[default]
host=http://www.baidu.com
port=7890
[db]
host=172.14.11.10
port=3306
from configparser import ConfigParser
#定义函数
def get_ini_data(filename,section,parse):
#初始化一个解析对象
parser=ConfigParser()
#判断解析的文件是否存在
try:
#解析对象读取文件
parser.read(filename,encoding='utf-8')
#获取某个区域的配置
section_parse=parser.get(section,parse)
return section_parse
except FileNotFoundError:
#print('文件不存在', err)
logging.error('文件不存在')
except Exception:
#print("文件出错啦。。")
logging.error('出错啦。。。')
#调用函数
if __name__ == '__main__':
ini_data=get_ini_data('test.ini','default','host')