如何在python中解析命令行参数

  介绍

这期内容当中小编将会给大家带来有关如何在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才能()

如何在python中解析命令行参数

方法二: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_))

如何在python中解析命令行参数

方法三: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中解析命令行参数