如何使用pyyaml获取yaml里面的数据
准备数据
在config目录下创建environment.yaml文件
1 |
|
使用pyyaml获取yaml中的数据
解析yaml文件
首先创建yaml_config
文件,为了方便自动化后面的引用,需要创建一个类,在__init__
里面打开yaml文件,使用yaml.load(文件名称, Loader=yaml.FullLoader )
方法获取数据
打印出字典格式的数据{'username': '周杰伦', 'password': 123456}
1 |
|
现在使用的是相对路径,后期如果换系统,或者更换文件位置,就需要自己获得文件路径,下面对代码进行优化
优化项:获得项目名称的url地址
创建get_project_path方法
,获取项目根目录的绝对路径
首先定义一个变量,变量的值是项目的名称project_name = "trading_system_autotest"
获取当前文件的所在目录的绝对路径,需要使用python的os模块file_path=os.path.dirname(__file__)
在绝对路径中找到项目名称的下标位置file_path.find(project_name)
找到项目所在目录的绝对路径下标+项目名称的长度=项目根目录的绝对路径的下标file_path.find(project_name)+len(project_name)
然后对所在目录的绝对路径file_path
进行切片获得项目根目录的绝对路径
file_path[: file_path.find(project_name)+len(project_name)]
1 |
|
优化项:获得拼接后的目录和文件
创建sep(path, add_sep_before=False, add_sep_after=False)方法
,获得文件和目录的拼接
变量
path变量
需要传输一个列表,列表里面是文件所在目录和文件名称,如[文件所在目录,文件名称]
首先使用os.sep.join
对列表的字段进行拼接all_path = os.sep.join(path)
对add_sep_before
进行判断,如果是True
,就在前面添加拼接符:all_path = os.sep + all_path
对add_sep_after
进行判断,如果是True
,就在后面添加拼接符:all_path = all_path + os.sep
windows格式拼接符有可能错误,就要对拼接符转换格式all_path = all_path.replace('\\', '/')
,就算没有这个代码,也可以运行出来,只是调试该代码看起来不好看
然后返回all_path
1 |
|
优化后的代码
1 |
|