欢迎光临散文网 会员登陆 & 注册

【python】argparse 参数解析

2021-12-30 08:49 作者:阿提艾斯  | 我要投稿

1、模块介绍

玩过linux的会看到过这种场景:

linux中命令帮助选项

使用"命令 --help"会把这个命令的用法、选项、说明都给列出来,非常直观。

在python中,经常写脚本,如果使用到命令行传参,头一次你可能知道该传递什么参数,时间久了,再次使用这个脚本,怕是代码要重新读一遍。如果能和linux一样,通过--help就能查询脚本怎么传参,岂不是很方便了吗。正好工作中也遇到了这个场景,接触到了一个python库:argparse,它可以帮助实现我们想要的效果。

使用argparse模块可以轻松编写用户友好的命令行接口,自动生成帮助和使用手册,并在用户传入无效参数时报出错误信息。


2、模块安装

不用安装,python自带,我使用的python版本是3.8.6.


3、模块使用

总共分成了三步调用

3.1 实例化一个ArgumentParser

参数含义

  • description: 描述你这个程序功能


3.2 调用add_argument()方法

参数含义

  • dest: 属性名字,就是你在获取参数的时候,可以通过这个属性名字获取对应的参数值

  • type: 类型,比如str, int, dict, list, set等等,规定你输入的参数的类型

  • help: 帮助说明,你这个参数含义是啥

  • choices: 选择题,你输入的参数只能是choices中指定的值,输入其他值会报错

  • nargs: 你这个参数要输入几个,比如你要输入的参数是这样的: --fruit ”apple“ "banana",那nargs=2

      但是要注意当你在程序中取fruit的值的时候,返回的结果是:

  • const: 当nargs的值设置为'?'时,在这儿设置const,代码中取该参数的值就会取到const的值。传参的时候你只需要传入选项,而不用在选项后面跟值。

  • required: 你的这个参数是否必须要通过命令行输入,如果是,设置为True,否则设置为False。

  • default: 设置默认值,如果你命令行没有输入该选项的值,程序中会取默认值


3.3 获取选项值

通过dest属性获取值


这儿附上完整调试代码:


观看下效果:

帮助效果

脚本传参使用:

传参使用


4、参考文档

https://docs.python.org/zh-cn/3.8/library/argparse.html



argparse模块,使用上面这些功能已经能解决我工作上的需求了,如果后续又有其他需求,再查找资料补充。欢迎共同讨论。

【python】argparse 参数解析的评论 (共 条)

分享到微博请遵守国家法律