文件 解析ddl"/>
python 文件 解析ddl
写没有操作界面的程序时,最讨厌的就是参数解析问题,尤其是很多参数那种,下面是一个小Demo,拿出来与各位分享:
1 #-*- coding:utf8 -*-
2 importos3 importdatetime4 importsys5 from optparse importOptionParser6
7
8 defget_user_paras():9 try:10 opt =OptionParser()11 opt.add_option('--host_ip',12 dest='host_ip',13 type=str,14 help='the ip of the check host')15 opt.add_option('--run',16 action="store_true",17 dest="is_run",18 default=False,19 help="run the scripts")20 opt.add_option('--view',21 action="store_false",22 dest="is_run",23 default=False,24 help="only view but not run the scripts")25 opt.add_option('--show_type',26 dest="show_type",27 type=int,28 default=0,29 help="0 or 1, 0 only show the simple data, 1 show the full data")30 (options, args) =opt.parse_args()31 is_valid_paras =True32 error_messages =[]33 host_ip =options.host_ip34 is_run =options.is_run35 show_type =options.show_type36 if nothost_ip:37 error_messages.append("host_ip must be set;")38 is_valid_paras =False39 if show_type not in [0, 1]:40 error_messages.append("show_type only can be 0 or 1;")41 is_valid_paras =False42
43 ifis_valid_paras:44 user_paras = {"host_ip": host_ip, "is_run": is_run, "show_type": show_type}45 returnuser_paras46 else:47 for error_message inerror_messages:48 print(error_message)
opt.print_help()49 returnNone50 exceptException as ex:51 print("exception :{0}".format(str(ex)))52 returnNone53
54
55 defmain():56 user_paras =get_user_paras()57 if user_paras isNone:58 sys.exit(0)59 info = "host_ip:{0}, is_run:{1}, show_type:{2}"
60 info = info.format(user_paras["host_ip"],61 user_paras["is_run"],62 user_paras["show_type"])63 print(info)64
65
66 if __name__ == '__main__':67 main()
当使用OptionParser时,会自动增加--help和-h参数,也会自动生成参数帮助,如:
对于代码:
opt.add_option('--run',
action="store_true",
dest="is_run",
default=False,
help="run the scripts")
--run 表示参数名
action表示将参数值如何处理,常用的有store/store_true/store_false,store即字面意思,store_true即将True作为参数值传递给参数,store_false将False作为参数值传递给参数
dest表示命令行参数解析后的参数名,
上面代码中--run作为命令行参数传递进来,由于action为store_true,因此参数值为True,解析后的参数名为is_run,通过(options, args) = opt.parse_args() 赋值后,便可以使用options.is_run来放问参数值。
更多帮助:.html
##========================================================##
对于参数较多或者参数值较大的情况,个人还是比较喜欢使用参数配置文件来实现,简单而且方便编辑,如创建一个run_config.py文件:
#-*- coding:utf8 -*-
#run config
classRunConfig(object):
is_run=True
show_status= 1host_ip= "192.167.1.1"run_scripts= """SELECT *
FROM TB001
WHERE ID >1000
AND C1<300"""
然后在其他文件中访问:
#-*- coding:utf8 -*-
from run_config importRunConfigdefmain():print("is_run:{0}, host_ip:{1}".format(RunConfig.is_run,RunConfig.host_ip))print("run_scripts:{0}".format(RunConfig.run_scripts))if __name__ == '__main__':
main()
简单粗暴,没那么麻烦,土豹子的做法哈!
##===================================================##
更多推荐
python 文件 解析ddl
发布评论