
简介:
python读写ymal文件(不需要考虑文件路径,只需要保证key名唯一)
# -*- coding: utf-8 -*-
# @Time : 2020/3/1
# @Author : andy
'''
文件说明:
读取ymal文件,不需要考虑路径问题,只需要保证key名唯一
'''
import os
import sys
# sys.path.append("D:\ly_project\test_project\autotest\data\") # linux上需要換成左斜杠 /,win上是两个右斜杠 \
# sys.path.append(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) # 當前目錄的父目錄
import inspect
import yaml
import warnings
warnings.filterwarnings("ignore")
class ReadWriteYmal():
def __init__(self):
# 获取当前路径
# self.current_path = os.getcwd()
# 获取当前所在路径的上一级的上一级路径,不包含文件名。
# 不一定是此ReadWriteYmal.py文件路径,如果在其他文件里(有导入ReadWriteYmal.py)运行,那么是主入口py文件路径
# self.dir_name = os.path.abspath('..')
# print(self.current_path)
# print(self.dir_name)
# 获取当前文件ReadWriteYmal.py路径+文件名
self.current_path = inspect.getfile(inspect.currentframe())
# 获取当前文件所在目录,相当于当前文件的父目录的父目录
self.dir_name = os.path.dirname(os.path.dirname(self.current_path))
# 转换为绝对路径
self.file_abs_path = os.path.abspath(self.dir_name)
# 拼接参数文件路径
self.paramspath = self.dir_name + "/data" # linux上需要換成左斜杠 /,win上是两个右斜杠 \
def readymal(self, ymalfilename, keyname):
print("接受参数:%s %s %s" % (ymalfilename, keyname, self.paramspath))
# 命令動態查找文件所在绝对路径+文件名
# sysstr = "find %s -name %s" % (self.paramspath, ymalfilename) # 路径最后不需要 /
# ymalfilepath = os.popen(sysstr).read()
# 测试时先写死看方法是否正常
ymalfilepath = "D:\ly_project\test_project\autotest\data\%s" % ymalfilename
# print('查找ymal find 命令执行结果: ', ymalfilepath)
# 读取ymal文件
f = open('%s' % ymalfilepath.strip(), 'r', encoding='utf-8')
x = yaml.full_load(f)
f.close()
return x[keyname]
def writeymal(self, ymalfilename, keyname):
apollo = {
"default": "test",
"%s" % keyname: {
"mobile": "13911111111",
"code": "246810",
"status_code": 201,
"message": "ok"
}
}
ymalfilename = "D:\ly_project\test_project\autotest\data\%s" % ymalfilename
with open(ymalfilename, "w") as f: # 写文件
yaml.safe_dump(data=apollo, stream=f)
if __name__ == "__main__":
# print(ReadWriteYmal().readymal("login_data_type2.yaml", "Test_Login"))
print(ReadWriteYmal().writeymal("login_data_type1.yaml", "login_success"))
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)