0
点赞
收藏
分享

微信扫一扫

python读写ymal文件(不需要考虑文件路径)

后来的六六 2022-04-23 阅读 165
python

简介:
python读写ymal文件(不需要考虑文件路径,只需要保证key名唯一)

# -*- coding: utf-8 -*-
'''
文件说明:
读取ymal文件,不需要考虑路径问题,只需要保证key名唯一
'''
import os, 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 + "/datas/logs"

    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()
        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):
        pass




if __name__ == "__main__":
    print(ReadWriteYmal().readymal("qbcr.yaml", "d01"))


举报

相关推荐

0 条评论