Python命令行参数argv和argparse的使用方法

小编给大家分享一下Python命令行参数argv和argparse的使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

概述

运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式:

Python命令行参数argv和argparse的使用方法

  • 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=<class'int'>
output=txt,type=<class'str'>

#参数格式错误
➜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=<class'NoneType'>
output=None,type=<class'NoneType'>
output=5,type=<class'int'>

看完了这篇文章,相信你对“Python命令行参数argv和argparse的使用方法”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2021-02-16 20:42:58
收藏
分享
海报
0 条评论
166
上一篇:怎么搭建按需加载的Vue组件库 下一篇:jsp页面中如何导入bootstrap
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码