最近在写一个自动化脚本。遇到一个头疼的问题,特记录下。
在写脚本过程中有个程序暂时只能用shell方式调用,导致想用运行过程中的变量获取不到,如下类似:
os.system('D:\\soft\\anaconda3\\python.exe dataCenter/get_adacard_yd.py')
尝试各种鸡肋的方式,直接获取不到,那就间接获取吧。在get_adacard_yd.py中将用的的变量报存到yaml文件,其他地方需要用到这个变量直接从yaml读就完事了。代码其实很简单,如下
def yaml_w(desired_caps):
# 将字典写入到yaml
curpath = f'{main_t.BASE_DIR}/commonCenter'
yamlpath = os.path.join(curpath, "caps.yaml")
# 写入到yaml文件
with open(yamlpath, "w", encoding="utf-8") as f:
yaml.dump(desired_caps, f)
def yaml_r():
curpath = f'{main_t.BASE_DIR}/commonCenter'
yamlpath = os.path.join(curpath, "caps.yaml")
f = open(yamlpath, 'r', encoding='utf-8')
cfg = f.read()
d = yaml.load(cfg,Loader=yaml.FullLoader) # 用load方法转字典
return d