这期内容当中小编将会给大家带来有关如何在python中解析命令行参数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
python解析命令行参数主要有三种方法:sys.argv, argparse解析,getopt解析
方法一:系统。argv,命令行执行:python test_命令行传参。py 1 2 3 1000
#, test_命令行传参. py import sys def para_input ():,, 打印才能(len (sys.argv)),,, #,参数序列的长度,此时所有参数存放在一个列表之中 if 才能len (sys.argv), & lt;, 2:,,,, ,,,sys.exit (“python error"),, script_name 才能=,sys.argv[0],第号一个参数指的是脚本名称 时间=param_first 才能;sys.argv[1], #第二个参数,此时也是一个str列表 时间=param_second 才能;sys.argv[2], #第三个参数, ,, 打印(script_name)才能 打印才能(类型(script_name)) 打印(param_first)才能 打印才能(类型(param_first)) ,, 时间=sss 才能;param_first.split (& # 39; & # 39;) 打印才能(类型(sss)) 打印才能(sss[0]),, #传进来的都是默认str 打印才能(sss) [1] 打印才能(sss) [2] ,, 打印(param_second)才能 打印才能(类型(param_second)) 打印才能(script_name, param_first,, param_second), if __name__ ==,“__main__": para_input才能()
方法二:argparse解析——命令行执行:python test_命令行传参。py - n彼得或者python test_命令行传参。彼得py - n - d 20191120
#, test_命令行传参. py import argparse 时间=parser argparse.ArgumentParser(& # 39;传入参数:* * * . py # 39;) parser.add_argument (& # 39; - n # 39;, & # 39;——名字# 39;,,默认=& # 39;杰克# 39;) parser.add_argument (& # 39; - d # 39;, & # 39;——日期# 39;,,默认=& # 39;20191128 & # 39;) 时间=args parser.parse_args () 打印(args) print(类型(args)) name_ =args.name date_ =args.date print(类型(name_)) print(类型(date_)) 打印(& # 39;从而,people % s said that 从而date is % & # 39; % (name_, date_))
方法三:getopt解析——命令行执行:python test_命令行传参。py - f游泳- p 20191130或者python test_命令行传参。py——functionname=游泳- p 20191130或者python test_命令行传参。py——functionname=游泳——partdate=20191130
格式为:getopt。getopt (argv,选择[long_options])
该方法有两种传参形式:短(& # 39;& # 39;)和长(& # 39;——& # 39;)
选项表示的是短选项,传入时需用(例如:- f)形式传入参数,其中,有冒号(:)表示- f之后必须传入值构成(例如:- f值),没有冒号则不用。
[long_options)表示的是长选项,传入时需用(例如:- f)形式传入参数,其中,有等于号(=)表示,f之后必须传入值构成(例如:——f=值),没有等于号则不用。
使用时可以长短混合,比如多个参数,有的用长选项,有的用短选项,在程序中设置默认值之后,还可以不用传全部参数
import getopt import 系统 def get_args_func (argv): 时间=functionname 才能;& # 39;拍照& # 39;,#默认值 时间=partdate 才能;& # 39;20191128 & # 39; ,, 尝试才能: 选择,,,,args =, getopt.getopt (argv,,“高频:p:“,,(“别人,,“functionname=?,,“partdate=?), #表示参数选项有:- h,,,, - f - p,,,的帮助,,,,,partdate functionname它们相互对应,该方法的返回值有两个元素:,第一个是(选择,价值)元组的列表,第二个是一般参数列表,包含那些没有,& # 39;& # 39;,或,& # 39;——& # 39;,的参数 except 才能;getopt.GetoptError: ,,,print(& # 39;错误:,* * * .py -f & lt; functionname>, -p & lt; partdate> & # 39;) ,,,print(& # 39;,,或者:,* * * .py ——functionname=& lt; functionname>,, partdate=& lt; partdate> & # 39;) ,,,sys.exit (2) ,, for 才能;选择,arg 拷贝选择:,,#依次获取列表中的元组项 ,,,if opt 拷贝(“-h",,“——别人): ,,,,,印刷(& # 39;* * * .py -f & lt; functionname>, -p & lt; partdate> & # 39;) ,,,,,印刷(& # 39;或:* * * .py ——functionname=& lt; functionname>,, partdate=& lt; partdate> & # 39;) ,,,,,sys.exit () ,,,elif opt 拷贝(“-f",,“——functionname"): ,,,,,functionname =参数 ,,,elif opt 拷贝(“-p",,“——partdate"): ,,,,,partdate =参数 打印才能(& # 39;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 39;) 打印(选择),才能#元组构成的列的表 打印(args),才能#参数指的是不用,& # 39;& # 39;或,& # 39;——& # 39;传递的参数,这里没有传递,所以为空 打印才能(& # 39;functionname为:& # 39;,,functionname) 打印才能(& # 39;partdate为:& # 39;,,partdate) if __name__ ==, & # 39; __main__ # 39;: get_args_func才能(sys.argv[1:]), #因为系统。null如何在python中解析命令行参数