Python命令行参数argv和argparse该如何使用
概述
运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式:
- sys.argv-简洁
- argparse-丰富,可自定义
下面详细说一下具体时使用
argv
#test_argv.py importsys args=sys.argv print(f'args={args}') >>>output ➜git:(master)python3test_argv.py args=['test_argv.py'] ➜git:(master)✗python3test_argv.py123 args=['test_argv.py','1','2','3'] ➜git:(master)✗python3test_argv.py123'helloworld!' args=['test_argv.py','1','2','3','helloworld!']
从上面可以看出,通过argv方法获取的结果:
- 返回为list
- 第一个参数为脚本本身
- 如参数中间带空格,用引号即可
argparse
argparse模块的功能较为丰富,其核心是通过add_argument方法自定义入参的:标志、格式、类型和范围等特性,常用如下:
- *name_or_flag-定义入参名或flag,如'-n','--number'
- type-指定入参类型
- choices-指定入参范围
- default-指定入参默认值
- required-指定该餐素是否不要,布尔类型
- help-参数概述
更多请参考:argparse
实例
test_argv.py
importargparse #初始化一个parser对象 parser=argparse.ArgumentParser(description='testmoduleofargparse') #指定-n/--number的参数 #类型为int #help为简短地说明 parser.add_argument( '-n','--number',type=int, help='argsofnumber' ) #指定-o/--output参数 #并限制类型为:['txt','csv','doc'] parser.add_argument( '-o','--output',type=str, choices=['txt','csv','doc'], help='outputmethod' ) #指定-d/--default参数 #并限制类型为:['txt','csv','doc'] parser.add_argument( '-d','--default',type=int, choices=[_for_inrange(1,10)], default=5, help='default' ) #指定位置参数foo parser.add_argument('foo') args=parser.parse_args() print(f'args={args}') #获取指定参数 print( f'number={args.number},type={type(args.number)}\n' f'output={args.output},type={type(args.output)}\n' f'default={args.default},type={type(args.default)}\n' f'foo={args.foo},type={type(args.foo)}' )
output
#-h-打印help ➜git:(master)✗python3test_argv.py-h usage:test_argv.py[-h][-nNUMBER][-o{txt,csv,doc}] [-d{1,2,3,4,5,6,7,8,9}] foo testmoduleofargparse positionalarguments: foo optionalarguments: -h,--helpshowthishelpmessageandexit -nNUMBER,--numberNUMBER argsofnumber -o{txt,csv,doc},--output{txt,csv,doc} outputmethod -d{1,2,3,4,5,6,7,8,9},--default{1,2,3,4,5,6,7,8,9} default #不带参数运行,结果为None ➜git:(master)✗python3test_argv.py args=Namespace(number=None,output=None) number=None output=None #带参数运行 ➜git:(master)✗python3test_argv.py-n33--outputtxt args=Namespace(number=33,output='txt') number=33,type=output=txt,type= #参数格式错误 ➜git:(master)✗python3test_argv.py-nstr usage:test_argv.py[-h][-nNUMBER][-o{txt,csv,doc}] test_argv.py:error:argument-n/--number:invalidintvalue:'str' ➜git:(master)✗python3test_argv.py-oexcel usage:test_argv.py[-h][-nNUMBER][-o{txt,csv,doc}] test_argv.py:error:argument-o/--output:invalidchoice:'excel'(choosefrom'txt','csv','doc') #默认参数 ➜git:(master)✗python3test_argv.py args=Namespace(default=5,number=None,output=None) number=None,type= output=None,type= output=5,type=
以上就是Python命令行参数argv和argparse该如何使用的详细内容,更多关于Python命令行参数argv和argparse的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。