pythonyaml参数_使用python检查yaml配置文件是否符合要求
我就废话不多说了,大家还是直接看代码吧!
# coding=utf-8
import logging
import yaml
import os
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
# 获取当前目录的路径
cur_dir = os.path.abspath('.')
def check_dt_pacsscp(config):
"""
用来检查文件配置是否正确
"""
#将配置config.yaml配置文件以字典方式读取
dts_method = config['service']['method']
dts_dup_check = config['service']['pacsscp_dup_check_off']
dts_interval = config['scheduler']['interval']
#判断对接方式是否是pacsscp
if dts_method == 'pacsscp':
if dts_dup_check == True and dts_interval == 3:
return True
else:
return False
else:
#打印error级别的错误
print "\033[31m Error:method not is pacsscp!!!\033[0m"
return False
if __name__ == "__main__":
# 加载yaml配置
config_yaml = os.path.join(cur_dir, 'config.yaml')
with open(config_yaml, 'rt') as f:
config = yaml.safe_load(f.read())
#dt相关路径和配置
dt_path = config['path']['docking-toolbox']
dt_config_path = os.path.join(dt_path, 'config.yaml')
with open(dt_config_path, 'rt') as f:
dt_config = yaml.safe_load(f.read())
if check_dt_pacsscp(dt_config):
print (u"\033[32m 校验通过~\033[0m")
else:
print (u'\033[32m 校验未通过, 请检查配置!\033[0m ')
以下是用正则获取不是yaml配置文件的
# coding=utf-8
"""
作业要求, 完善check_txpacs_version函数
"""
import logging
import traceback
import yaml
import os
import sys
import re
reload(sys)
sys.setdefaultencoding("utf-8")
# 获取当前目录的路径
cur_dir = os.path.abspath('.')
def check_txpacs_version(config, constant):
"""
高难度
校验txpacs版本, 若版本<1.4, 则回调中不能出现received_start_timestamp和received_end_timestamp这两个参数,
若不合法打印error级别的提示;
校验txpacs的自动清理功能是否合法: 若dt版本<1.3.8, 则不做要求,
若dt版本>=1.3.8, 则要求txpacs版本必须为1.5.1及以上版本, 且txpacs配置的clean_date需配置为正整数
(docking-toolbox的版本号可以从文件'docking-toolbox/toolbox/utils/constant.py'中读取),
若不合法打印error级别的提示.
根据以上结果, 返回返回值.
:param config: txpacs的配置
:param constant: docking-toolbox/toolbox/utils/constant.py文件内容
:return: True: 通过
False: 不通过
"""
# 获取txpacs的版本号
jar_file = os.listdir(txpacs_path)
jar_file.sort(reverse=True)
jar_ver = jar_file[0]
jar_version = re.search('txpacs-(.*?).jar', jar_ver)
#txpacs的版本号
txpacs_version = jar_version.group(1)
#docking-tools的版本号
dt_version = re.search('DT_VERSIONS.*?"(.*?)"',constant).group(1)
#打开txpacs的配置文件
with open(txpacs_config_path, 'rt') as f:
txpacs_file = f.read()
#判断txpacs的版本号是否小于1.4
if txpacs_version < '1.4':
#判断received_start_timestamp" and "received_end_timestamp"两个参数是否出现在txpacs配置文件中
if "received_start_timestamp" and "received_end_timestamp" not in txpacs_file:
return True
else:
print "\033[31m Error:当前的txpacs版本号是txpacs-%s ,不应该存在received_start_timestamp和received_end_timestamp\033[0m"%txpacs_version
return False
#如果txpacs版本号大于等于1.4
else:
#判断DT版本是否大于1.3.8
if dt_version >= '1.3.8':
if txpacs_version >= '1.5.1':
if config['store']['clean_date'] > 0:
return True
else:
print "\033[31m Error:txpacs配置文件中clean_date应为正整数 \033[0m"
return False
else:
print "\033[31m Error:当前DT版本大于1.3.8,txpacs版本必须大于等于1.5.1\033[0m"
return False
else:
return True
if __name__ == "__main__":
# 加载yaml配置
config_yaml = os.path.join(cur_dir, 'config.yaml')
with open(config_yaml, 'rt') as f:
config = yaml.safe_load(f.read())
# txpacs相关路径和配置
txpacs_path = config['path']['txpacs']
txpacs_config_path = os.path.join(txpacs_path, 'conf.yml')
with open(txpacs_config_path, 'rt') as f:
txpacs_config = yaml.safe_load(f.read())
# dt相关路径和配置
dt_path = config['path']['docking-toolbox']
dt_constant_path = os.path.join(dt_path, 'toolbox', 'utils', 'constant.py')
with open(dt_constant_path, 'rt') as f:
dt_constant = f.read()
if check_txpacs_version(txpacs_config, dt_constant):
print (u"\033[32m 校验通过~\033[0m")
else:
print (u'\033[32m 校验未通过, 请检查配置! \033[0m')
以上这篇使用python检查yaml配置文件是否符合要求就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
本文标题: 使用python检查yaml配置文件是否符合要求
本文地址: http://www.cppcns.com/jiaoben/python/306488.html
pythonyaml参数_使用python检查yaml配置文件是否符合要求相关推荐
- python读取yaml配置文件的方法
yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...
- python怎么理解函数的参数_理解Python中函数的参数
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...
- python传中文参数_解决Python传递中文参数的问题
今天有个需要需要传递中文参数给URL 但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误.烦的很. 所以我们果断选择用urlencode来处理中文, 由于国内外网站编码不同,国 ...
- python调用shell脚本的参数_使用python执行shell脚本 并动态传参 及subprocess的使用详解
最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数 执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库 subpr ...
- python中list作为函数参数_在python中list作函数形参,防止被实参修改的实现方法
0.摘要 我们将一个list传入函数后,函数内部对实参修改后,形参也会随之改变.本文将主要介绍这种错误的现象.原因和解决方法. 1.代码示例 def fun(inner_lst): inner_lst ...
- python 实例方法调用时可以忽略第一个参数_盘点Python中易忽略的函数
Python 内置函数 1.ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数, ...
- shell调用python脚本传递命名关键字参数_关于python:将字典作为关键字参数传递给函数...
我想使用字典在python中调用函数. 这是一些代码: d = dict(param='test') def f(param): print(param) f(d) 这打印{'param': 'tes ...
- python request请求参数_使用python将请求的requests headers参数格式化方法
如下所示: import json # 使用三引号将浏览器复制出来的requests headers参数赋值给一个变量 headers = """ Host: zhan. ...
- python中文字体奇怪_利用python检查 AS400的中文字问题
总所周知,AS400处理中文的能力比较有限,特别是在针式打印机上打印含有中文字体的报表的时候,特别容易出现乱码.这里先探讨一下AS400的 中文格式.在AS400中,存放中文字的字段都是以0x0E开头 ...
最新文章
- C++ 笔记(01)— 环境设置(安装g++、g++ 编译 C++、 生成可执行文件流程、解释器与编译器区别)
- postgresql----文本搜索类型和检索函数
- iphone微信美颜插件_Cydia插件推荐
- 查看tensorflow等第三方包支持平台
- python开发需要学什么_用Python进行web开发需要学习什么?
- Linux救援模式实战
- cm如何查看各个组件版本_Oracle HowTo:查询Oracle各组件的版本信息
- 台湾厂商:大陆投资DRAM工厂可能破坏全球市场
- python拓展包之pymoo使用方法:多目标优化(NSGA2)
- linux怎么把dos改成unix_Linux命令之dos2unix – 将DOS格式文本文件转换成UNIX格式
- 汉高软件服务器安装系统,如何安装了如指掌眼镜管理系统的服务器和客户端,还需要安装什么软件的?...
- 二维傅里叶变换的理解和使用
- 【解决问题】WindowsXXX端口已被占用:以 1080端口已被占用 为例
- Pr 视频速率与关键帧
- 围棋大师阿里,产品经理腾讯
- 关于法线贴图、颜色贴图和高光贴图
- mysql计算员工年终奖金_年终奖 扣税计算
- 03-STM32+Air724UG远程升级篇OTA(阿里云物联网平台)-STM32+Air724UG使用阿里云物联网平台OTA远程更新STM32程序
- 谁在崛起,谁在没落?新一线城市竞争力盘点,用Python绘制动态图带你看懂!
- 一个新手学着重装系统之路
热门文章
- git配置中文乱码_解决git中文乱码问题
- 求无向图中某顶点的度 (有注释)
- dataframe 添加列表到一个单元格并解决报错ValueError: Must have equal len keys and value when setting with an...
- 判断成绩linux程序编程,程序输入输出 ,编写判断成绩的程序
- 南林计算机课程表,南京林业大学课程表.doc
- bz2解压命令_Java压缩技术 - tar.bz2解压缩
- java逆向框架,Android逆向之逆向框架层
- Codeforces 446C. DZY Loves Fibonacci Numbers【斐波那契+线段树】
- java 实现一套流程管理、流转的思路(伪工作流) 【仅供参考】
- 【VMware】宿主机连接wifi,虚拟机中的Linux系统配置连接wifi