python argparse 简明教程
发布日期:2021-06-29 03:49:02
浏览次数:3
分类:技术文章
本文共 2538 字,大约阅读时间需要 8 分钟。
本文档为本人自己根据官网文档的理解,重新整理,希望可以帮到大家。
argparse是python标准库里面用来处理命令行参数的库
说人话就是:帮助我们能够从终端运行程序,加上需要的参数。参考资料:
- (中文资料)
- (中文资料)
命令行参数分为位置参数和选项参数:
- 位置参数就是程序根据该参数出现的位置来确定的
- 选项参数数是应用程序已经提前定义好的参数,不是随意指定的
先看一个完整的例子
先创建一个hello.py的脚本,里面是下面的代码:
#!/usr/bin/env python3def main(name): print("Hello", name, "Wellcome to SIMM!") if __name__ == "__main__": from argparse import ArgumentParser ap = ArgumentParser() ap.add_argument("-n", "--name", type=str, required=True) args = ap.parse_args() main(args.name)
终端运行:
zdx@n100:~$ ./hello.py -n zdxHello zdx Wellcome to the world!
而对于一般的脚本,都需要加上标准I/O, 程序的输入和输出,一目了然。
if __name__ == "__main__": from argparse import ArgumentParser ap = ArgumentParser() ap.add_argument("-i", "--input", type=str, required=True, help="Input of the program.") ap.add_argument("-o", "--output", type=str, required=True, help="Output of the program.") args = ap.parse_args() main(args.input, args.output)
然后咱们看看一些细节
最简单的用法
(注意其中的是 ‘x’,不是’-x’)
import argparseparser = argparse.ArgumentParser()parser.add_argument('x', help="Please input a integer.")args = parser.parse_args()print(args.x)
终端运行:
zdx@n100:~$ ./argparse_test.py 11
‘x’ 与 ‘-x’ 的区别
多出‘-’,就必须在命令行加上’-x’, 才能传参,不然会报错
import argparseparser = argparse.ArgumentParser()parser.add_argument('-x', help="Please input a integer.")args = parser.parse_args()print(args.x)
终端运行
zdx@n100:~$ ./argparse_test.py -x 11
可以是多个‘-’,两个‘–’,三个’—'都可以…
parser.add_argument('--x')
终端运行
zdx@n100:~$ ./argparse_test.py --x 11
‘-x’ 与 ‘–x’ 区别
下面用 "–number"来举例子,从命令行传进来的参数,会赋值给args.number.
‘-n’ 方便终端使用,‘–number’ 就是变量的全名import argparseparser = argparse.ArgumentParser()parser.add_argument('-n', "--number", help="Please input a integer.")args = parser.parse_args()print(args.number)
终端运行:
zdx@n100:~$ ./argparse_test.py -n 11
对同一个传参设置多个选项,就必须设置dest参数了
parser.add_argument('-x', '-variable', '-other', dest='x', help="Please input a integer.")
这个概念很好理解,看下示例你就明白了
zdx@n100:~$ ./argparse_test.py -x 11zdx@n100:~$ ./argparse_test.py -variable 11zdx@n100:~$ ./argparse_test.py -other 1 1
add_argument其他参数介绍
add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]):
- name or flags - 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
- action - 当参数在命令行中出现时使用的动作基本类型。
- nargs - 命令行参数应当消耗的数目。
- const - 被一些 action 和 nargs 选择所需求的常数。
- default - 当参数未在命令行中出现时使用的值。
- type - 命令行参数应当被转换成的类型。
- choices - 可用的参数的容器。
- required - 此命令行选项是否可省略 (仅选项可用)。
- help - 一个此选项作用的简单描述。
- metavar - 在使用方法消息中使用的参数值示例。
- dest - 被添加到 parse_args() 所返回对象上的属性名。
转载地址:https://blog.csdn.net/zdx1996/article/details/107875429 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月04日 22时00分47秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
dubbo集成springboot demo for idea
2019-04-29
Windows下RabbitMQ安装,部署,配置(详解)
2019-04-29
完美解决springboot集成jsp问题(详解demo)
2019-04-29
Java-Activiti插件(eclipse、idea)-包含说明书
2019-04-29
nginx更改Error页面404等等页面指向
2019-04-29
jdk1.8新特性 lambda Optional 备忘记录
2019-04-29
Goland-golang:could not launch process: decoding dwarf section info at offset 0x0: too short
2019-04-29
个人第一个go样例,gin+gorm
2019-04-29
go-redis,最简单的增删改查还有json
2019-04-29
go get失败解决方案,推荐解决方案
2019-04-29
Mac上UltraEdit v18.00.0.22 分享
2019-04-29
go转换json,并且打印报文
2019-04-29
go中gorm和pg的common数据库配置
2019-04-29
go中gin框架支持的简单上传下载读取csv等文件
2019-04-29
go 闭包
2019-04-29
go 捕获处理error
2019-04-29