一 概念:
argparse是python的一个命令行解析包。它可以使写用户友好的命令行接口变得非常容易。该模块定义什么参数是需要的,并且能指出怎么解析sys.argv的参数。它也可以自动的生成帮助和使用指南。
二 使用指南:
1 基本用法:没有参数输入的情况。
#!/usr/bin/env python # encoding: utf-8 import argparse parser = argparse.ArgumentParser() parser.parse_args()
根据下面的输出结果可以看出,这样只能默认是-h的输入,别的输入参数就会上报错误。
$ python base.py $ python base.py -h usage: base.py [-h] optional arguments: -h, --help show this help message and exit $ python base.py -v usage: base.py [-h] base.py: error: unrecognized arguments: -v
2 参数输入,直接参数可用。
#!/usr/bin/env python # encoding: utf-8 import argparse parser = argparse.ArgumentParser() parser.add_argument("audio") args = parser.parse_args() print args.audio
使用方法和结果:
$ python base.py audio
audio
3 可选参数和类型:
下面的这个参数square 的类型是限定在int类型,-v的类型使用choices限定在[0,1,2],这样就能很方便的看出来该解析函数的使用方法。
#!/usr/bin/env python # encoding: utf-8 import argparse parser = argparse.ArgumentParser() parser.add_argument("square", type=int, help="display a square of a given number") parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2], help="increase output verbosity") args = parser.parse_args() answer = args.square**2 if args.verbosity == 2: print "the square of {} equals {}".format(args.square, answer) elif args.verbosity == 1: print "{}^2 == {}".format(args.square, answer) else: print answer ~
使用和运算结果:
$ python choices_arg.py 4 -v 2 the square of 4 equals 16 $ python choices_arg.py -v 2 usage: choices_arg.py [-h] [-v {0,1,2}] square choices_arg.py: error: too few arguments
通过这几个例子,我们对模块argparse有了大致的了解,详细的使用请参考下面的文档:
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |
![]() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战