Python_argparse
简介
argparse是Python的一个命令行解析器
1、创建解析器 ArgumentParser
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")print(parser.print_help())
(venv) E:\文档\Python\PythonTest>python argparseTest.py
usage: my_program [options] usagehelp信息前显示的信息———我的argparse命令行参数用法optional arguments:-h, --help show this help message and exithelp信息之后显示的信息
None
prog : 脚本文件名,默认为sys.argv[0],用来在help信息中描述程序的名称
usage :描述程序用途的字符串
description :help信息前显示的信息
epilog : help信息之后显示的信息
2、添加参数选项 add_argument
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
1. name or flags : 参数有两种,可选参数和位置参数
- positional arguments - 位置参数
用法是在命令行中不用带“-”就可以用
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("echo") #位置参数args = parser.parse_args()print(args.echo)#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py hahaha
hahaha
- optional arguments - 可选参数
用法是在命令行中要使用横杠,其中有两种方式:
一种是通过一个"-"来指定的短参数,如"-h";
一种是通过一个"--"来指定的长参数,如"--help";
这两种方式可以同时使用或只用一种
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", "--foo", help = "这是一个f或foo命令的指令") #可选参数
#该行定义了可选参数-f 或 --foo, 通过解析后,其值保存在args.foo变量中args = parser.parse_args()print(args.foo)#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py -f hahaha
hahaha(venv) E:\文档\Python\PythonTest>python argparseTest.py --foo heiheihei
heiheihei
2. action
在命令行中使用 "-f" 时,必须指定参数值,否则就会报错,有没有像 "-h" 那样,不需要指定参数值得呢,答案是有的,通过定义参数时指定action = "store_true" 即可,用法如下
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", "--foo", help = "这是一个f或foo命令的指令", action = "store_true")args = parser.parse_args()print(args.foo)#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py -f
True
-f 没有指定任何参数,其实存的是True或False,如果出现,则其值为True,否则为False
3. nargs : 指定参数的数量
4. const : 保存一个常量
5. default : 默认值
1. 参数的值可以为整数N(N个),*(任意个,可以为0个),+(一个或多个)
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", help = "这是一个f命令的指令", nargs = "*")
parser.add_argument("-v", help = "这是一个v命令的指令", nargs = "*")print(parser.parse_args("-f 1 2 -v 3 4 5".split()))#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py
Namespace(f=['1', '2'], v=['3', '4', '5'])
2. 值为?时,首先从命令行获取的参数,如果有 -v 而后面没加参数,则从const中取值,如果没有 -v ,则从default中取值
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", help = "这是一个f命令的指令", nargs = "?", default = "default")
parser.add_argument("-v", help = "这是一个v命令的指令", nargs = "?", const = "hahaha", default = "default")print(parser.parse_args("-f 1 -v 2".split()))
print(parser.parse_args("-f 1 -v".split()))
print(parser.parse_args([]))#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py
Namespace(f='1', v='2')
Namespace(f='1', v='hahaha')
Namespace(f='default', v='default')
6. type : 指定的参数类型,默认为str
7. choices : 设置参数值的范围,如果choices中的类型不是字符串,记得指定type
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", help = "这是一个f命令的指令", type = int, choices = range(1, 4))print(parser.parse_args("-f 1".split()))
print(parser.parse_args("-f 4".split()))#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py
Namespace(f=1)usage: my_program [options] usage
my_program: error: argument -f: invalid choice: 4 (choose from 1, 2, 3)
8. required : 可选参数在命令行中是否可以省略(仅针对可选参数)
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", help = "这是一个f命令的指令", required=True)print(parser.parse_args())#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py
usage: my_program [options] usage
my_program: error: the following arguments are required: -f(venv) E:\文档\Python\PythonTest>python argparseTest.py -f hahaha
Namespace(f='hahaha')
9.help : 设置这个选项的帮助信息
10.metavar : 该选项默认时会把参数的名字变为大写;更改时会在帮助信息中显示指定名称
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", "--foo", help = "这是一个f命令的指令", metavar="Function")print(parser.print_help())#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py
usage: my_program [options] usagehelp信息前显示的信息———我的argparse命令行参数用法optional arguments:-h, --help show this help message and exit-f Function, --foo Function这是一个f命令的指令help信息之后显示的信息
None
11. dest : 这个参数相当于把位置参数或可选参数关联到一个特定的新变量中
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", help = "这是一个f命令的指令")print(parser.parse_args("-f haha".split()))#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py
Namespace(f='haha')########################################################################################
import argparseparser = argparse.ArgumentParser(prog = "my_program", usage = "%(prog)s [options] usage", description = "help信息前显示的信息———我的argparse命令行参数用法", epilog = "help信息之后显示的信息")parser.add_argument("-f", help = "这是一个f命令的指令", dest = "foo")print(parser.parse_args("-f haha".split()))#运行结果------------------------------------------------------------
(venv) E:\文档\Python\PythonTest>python argparseTest.py
Namespace(foo='haha')
Python_argparse相关推荐
- Python_argparse.Argumentparser()
argparse模块简介 官方文档 argparse是一个Python模块:命令行选项.参数和子命令解析器. argparse模块可以让人轻松编写用户友好的命令行接口.程序定义它需要的参数,然后arg ...
- pythonos模块介绍_python的os模块fnmatch模块介绍
一.先介绍一下os模块 import os print(os.getcwd()) # E:\python\test\python_models # 获取当前的目录 print(os.listdir(& ...
- mybatis 新增语句_mybatis增删改查
映射文件EmployeeMapper.xml 注意:小于或大于号等可能与如select标签的尖括号(<>)与冲突或者无法识别的时候,可以使用转义字符比如小于号可以使用&It; 等等 ...
最新文章
- python装饰器原理-Python装饰器完全解读
- Windows Phone 7用户界面原型截图汇总
- 无图形界面下控制台操作Virtualbox
- 职工信息管理软件c语言大一,职工信息管理(C语言
- 为什么说拥抱.NET CORE的时候到了
- c语言插件实现原理,C语言实现插件机制
- 最短路 Dijkstra 算法详解与模板
- 用什么工具可以制作gif?分享一款在线制作gif动画工具
- 国际国家代号mysql_最全的各国 语言(文化)代码与国家地区对照表(国际通用标准形式)...
- python3 根据种子文件torrent获取磁力链接
- 一、Jquery入门(超详)
- 畅捷通魔方MP70初体验
- Ansys-结构动力学分析-悬臂梁模态分析学习收获
- 基于VC++的MFC类库实现的简单FTP客户端
- javascript 百度百科
- BigDecimal 往左移动两位小数_移动信号灯
- 2022.5.25 FreeSurfer入门练习:Recon-all
- 陪玩MM千千万,谁是你的NO.1?使用Python获取陪玩照片进行颜值检测打分
- 计算2个拼音的相似度 PHP版本
- doc转docx文件会乱吗_docx怎么转换成doc?docx转doc方法汇总
热门文章
- oracle清除bin,Oracle recyclebin详解(闪回删除的表)
- python 单一继承定义_Python学习之单继承与多继承
- ipqc异常处理流程图_IPQC巡检流程.七大手法.八大原则.九大步骤
- Tensorboard可视化:基于LeNet5进行面部表情分类
- php smarty 语法,php之Smarty根本语法和三大变量
- 宝塔面板的ftp无法使用解决
- 如何用ARKit将太阳系装进iPhone(二)
- linux服务器时间乱码问题解决
- springboot启动时的一个bug
- Flink - allowedLateness