yaml.handler.pyimportosimportyamlfromconfigs.settingsimportfile_pathdefread_yaml(yaml_path): 读取yaml文件数据 :param yaml_path: 文件路径 :return: try:withopen(yaml_path,r,encodingutf-8)asf:datayaml.safe_load(f)returndataexceptUnicodeDecodeError:print(f{yaml_path}文件编码格式错误尝试使用utf-8去解码yaml文件发生错误请检查yaml文件格式是否为utf-8格式)exceptExceptionase:print(f读取{yaml_path}文件异常原因是{e})defwrite_yaml(data): yaml文件数据写入 :param data: dict写入数据为字典类型 :return: FILE_PATHfile_path[extract]ifnotos.path.exists(FILE_PATH):# 如果不存在就创建一个空文件withopen(FILE_PATH,w,encodingutf-8)asf:passfileNonetry:fileopen(FILE_PATH,a,encodingutf-8)# a为追加写入# 校验传入的数据必须是字典类型ifisinstance(data,dict):write_datayaml.dump(data,allow_unicodeTrue,sort_keysFalse)file.write(write_data)else:print(写入的数据必须为字典类型)exceptExceptionase:print(f写入yaml文件出现异常原因是{e})finally:file.close()defclear_yaml(): 清空yaml文件 :return: withopen(file_path[extract],w,encodingutf-8)asf:f.truncate()if__name____main__:# res read_yaml(../data/data.yaml)# res1 write_yaml({name: cc})res2clear_yaml()print(res2)settings.pyimportosimportsys# 获取当前文件的目录路径os.path.dirname(__file__)# dir_path os.path.dirname(__file__) # E:\myself\project_code\can\autoapi\configsdir_pathos.path.dirname(os.path.dirname(__file__))# 获取上级目录的路径# print(dir_path)sys.path.append(dir_path)file_path{extract:os.path.join(dir_path,extract_data.yaml),}print(file_path[extract])
六、yaml文件读写操作封装
yaml.handler.pyimportosimportyamlfromconfigs.settingsimportfile_pathdefread_yaml(yaml_path): 读取yaml文件数据 :param yaml_path: 文件路径 :return: try:withopen(yaml_path,r,encodingutf-8)asf:datayaml.safe_load(f)returndataexceptUnicodeDecodeError:print(f{yaml_path}文件编码格式错误尝试使用utf-8去解码yaml文件发生错误请检查yaml文件格式是否为utf-8格式)exceptExceptionase:print(f读取{yaml_path}文件异常原因是{e})defwrite_yaml(data): yaml文件数据写入 :param data: dict写入数据为字典类型 :return: FILE_PATHfile_path[extract]ifnotos.path.exists(FILE_PATH):# 如果不存在就创建一个空文件withopen(FILE_PATH,w,encodingutf-8)asf:passfileNonetry:fileopen(FILE_PATH,a,encodingutf-8)# a为追加写入# 校验传入的数据必须是字典类型ifisinstance(data,dict):write_datayaml.dump(data,allow_unicodeTrue,sort_keysFalse)file.write(write_data)else:print(写入的数据必须为字典类型)exceptExceptionase:print(f写入yaml文件出现异常原因是{e})finally:file.close()defclear_yaml(): 清空yaml文件 :return: withopen(file_path[extract],w,encodingutf-8)asf:f.truncate()if__name____main__:# res read_yaml(../data/data.yaml)# res1 write_yaml({name: cc})res2clear_yaml()print(res2)settings.pyimportosimportsys# 获取当前文件的目录路径os.path.dirname(__file__)# dir_path os.path.dirname(__file__) # E:\myself\project_code\can\autoapi\configsdir_pathos.path.dirname(os.path.dirname(__file__))# 获取上级目录的路径# print(dir_path)sys.path.append(dir_path)file_path{extract:os.path.join(dir_path,extract_data.yaml),}print(file_path[extract])