python 文件 解析ddl

编程入门 行业动态 更新时间:2024-10-07 01:21:42

python <a href=https://www.elefans.com/category/jswz/34/1771438.html style=文件 解析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

本文发布于:2024-02-28 10:13:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769385.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   python   ddl

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!