python 命令行参数 argparse用法总结
目录
一、使用到的具体函数
二、程序用法说明
三、位置参数 positional arguments
四、可选参数 optional arguments
五、类型
六、可选值
七、互斥参数
八、参数默认值
一、使用到的具体函数
需要 python 库 argparse,命令行。
pip install argparse
# 创建解析对象
parser = argparse.ArgumentParser(description="tell others what you want!")# 添加命令
parser.add_argument(...)# 解析命令
args = parser.parse_args()
二、程序用法说明
该部分是在创建的时候对程序输入进行解释,告诉命令行用户,如何传入参数。其中参数description 传入的字符串就是参数的解释。可以通过-h进行提示。
import argparseparser = argparse.ArgumentParser(description="hello world!")
args = parser.parse_args()
命令行操作:将上述代码存入 test1.py 中,进入到test1.py所在文件夹内
python test1.py -h
命令行输出:
usage: test1.py [-h]hello world!optional arguments:-h, --help show this help message and exit
三、位置参数 positional arguments
定义一个参数,不用在参数前面加上'-',必写。而且传入的参数全部都是str类型。
import argparseparser = argparse.ArgumentParser(description="hello world!")parser.add_argument("x")args = parser.parse_args()# 通过解析对象调用添加的参数"x"
print (args.x)
命令行操作:
python test1.py 797python test1.py hello
命令行输出:
797hello
四、可选参数 optional arguments
- - 短参数,例如 -h
- -- 长参数,例如 --help
解析之后调用,要注意是使用长参数。
import argparseparser = argparse.ArgumentParser(description="hello world!")parser.add_argument("-v", "--verbosity", help="add output verbosity")args = parser.parse_args()print (args.verbosity)
该代码中解析对象args调用参数,不能用args.v,要用args.verbosity。
命令行操作:
python test1.py -v world
命令行输出:
world
其次如果我们想给 一个短参数指定参数,需要使用add_argument函数中的参数,action="store_true"
import argparseparser = argparse.ArgumentParser(description="hello world!")parser.add_argument("-v", "--verbosity", help="add output verbosity")
parser.add_argument("-w", "--weight", action="store_true")args = parser.parse_args()print (args.verbosity)
if args.weight:print ("weight has been given!")
else:print ("weight has not been given!")
命令行操作:
python test1.py -v fuck -w
python test1.py -v fuck
命令行输出:
fuck
weight has been given!
fuck
weight has not been given!
五、类型
因为默认的参数类型是str类型,如果需要进行数字的计算,那么将在参数解析后进行参数的类型转换,如果不能转换将会报错。
import argparseparser = argparse.ArgumentParser(description="hello world!")parser.add_argument("x", type=int)
parser.add_argument("-y", "--param_y", type=float)args = parser.parse_args()print (2 ** args.x, args.param_y * 2)
命令行操作:
python test1.py 5 -y 4.5
命令行输出:
32 9.0
六、可选值
比如输入一个参数的取值范围为[1, 2, 3]输入其他的就会报错
比如输入一个字符串["hello", "world", "fuck"]输入其他的字符串就会报错
下面代码中设置,-v的取值只能是1, 2, 3中的一个。
import argparseparser = argparse.ArgumentParser(description="hello world!")parser.add_argument("-v", "--verbosity", type=int,choices=[1, 2, 3], help="add output verbosity")args = parser.parse_args()print (2 ** args.verbosity)
命令行操作:
python test1.py -v 3
python test1.py -v 5
命令行输出:
8
usage: test1.py [-h] [-v {1,2,3}]
test1.py: error: argument -v/--verbosity: invalid choice: 5 (choose from 1, 2, 3)
补充例子:
import argparseparser = argparse.ArgumentParser(description="hello world!")parser.add_argument("-v", "--verbosity", choices=["hello", "world", "fuck"], help="add output verbosity")args = parser.parse_args()print (args.verbosity)
命令行操作:
python test1.py -v hello
python test1.py -v fuckyou
命令行输出:
hello
usage: test1.py [-h] [-v {hello,world,fuck}]
test1.py: error: argument -v/--verbosity: invalid choice: 'fuckyou' (choose from 'hello', 'world', 'fuck')
七、互斥参数
创建一个互斥组,通过add_mutually_exclusive_group()
import argparseparser = argparse.ArgumentParser(description="hello world!")group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbosity", action="store_true")
group.add_argument("-p", "--provement", action="store_true")args = parser.parse_args()if args.verbosity and args.provement:print ("same time appear!")
else:print ("not same time appear!")
命令行操作:
python test1.py -v
python test1.py -v -p
命令行输出:
not same time appear!
usage: test1.py [-h] [-v | -p]
test1.py: error: argument -p/--provement: not allowed with argument -v/--verbosity
八、参数默认值
import argparseparser = argparse.ArgumentParser(description="hello world!")parser.add_argument("x", type=int) # 不存在默认参数,必须要传参
parser.add_argument("-v", "--verbosity", type=int, default=5)args = parser.parse_args()print (args.x * args.verbosity)
命令行操作:
没有使用默认参数
python test1.py 6 -v 7
使用默认参数
python test1.py 6
命令行输出:
42
30
python 命令行参数 argparse用法总结相关推荐
- python 命令行参数—argparse模块的使用
简单示例 我们先来看一个简单示例.主要有三个步骤: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() 解析添加的参数 .示 ...
- Python 命令行参数:Argparse 与 Click
Python 命令行参数:Argparse 与 Click 简介 一.Argparse 模块 1.1 概念 1.2 基础 1.3 位置参数介绍 1.4 可选参数介绍 1.5 短选项 1.6 结合位置参 ...
- python命令行参数解析OptionParser类用法实例
python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下: from opt ...
- 对于python命令行参数使用,你应该这么做才专业
python命令行参数 在python开发中,我们经常会遇到在执行代码时,需要给代码传参的情况. 遇到传参的场景,最基础的传参方式为*.py argv1 argv2 ...,然后我们在代码中通过sya ...
- python 命令行 参数_Python命令行参数
python 命令行 参数 Python Command line arguments are input parameters passed to the script when executing ...
- 一日一技python安装_一日一技:快速实现Python 命令行参数
一日一技:快速实现Python 命令行参数 摄影:产品经理 厨师:kingname 我们有时候需要使用 Python 开发一些命令行工具,并在运行命令的时候指定一些参数,例如: python3 xxx ...
- Python 命令行参数详解
Python 命令行参数详解 0. 命令行参数 1. sys.argv 2. getopt 2.1 getopt.getopt 方法 2.2 Exception getopt.GetoptError ...
- Python命令行参数解析模块getopt使用实例
这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...
- git 忽略__pycache___容易被忽略的 Python 命令行参数
上周编写了一个 Python 脚本用于将一堆包含 oracle dmp 文件的 rar 压缩包恢复到 oracle 数据库.由于 oracle dmp 文件恢复速度较慢,通过 nohup commad ...
最新文章
- Stanford UFLDL教程 池化Pooling
- 数据结构和算法 —— 绪论
- 网站前端性能优化之javascript和css
- caffeine 缓存_使用Caffeine和Spring Boot的多个缓存配置
- React开发(131):ant design学习指南之form中的resetFields
- dynamips中网卡参数如何和网络连接中的具体网卡匹配
- Javascript 调用MSAgent
- Quartus II13.0的破解过程
- Apache配置文件中的deny和allow的使用
- 我的JAVA面试经验(5年左右工作经验)
- UE4 Sequencer的事件调用
- java计算机毕业设计小区失物招领网站源程序+mysql+系统+lw文档+远程调试
- 软件测试2小时入门-曹红杏-专题视频课程
- PPI (手机屏幕的PPI 和计算方法)
- 计算机设备标签怎么贴,电脑怎么打印不干胶标签 电脑打印不干胶标签操作流程【图文】...
- 吞吐量和IOPS测试
- ElasticSearch——Day04
- java计算机毕业设计中学招生管理系统源码+数据库+系统+lw文档+mybatis+运行部署
- 计算机视觉之利用颜色进行肤色检测(基于OpenCV自带库函数)
- 二十二.jmeter在linux下运行
热门文章
- 计算机综合症怎么治,如何防治电脑综合征?
- LVGL V8之buttons styles
- 使用git拉取阿里云code托管的项目中的指定分支
- 埋点治理-埋点SQL监控
- 炒股开户第二证券|本届世界杯小组赛首轮 亚足联6支球队2胜1平3负
- linux查看redis命令,linux查看redis版本怎么操作?具体示例
- oracle revoke 列_Oracle Grant 与 Revoke的用法
- lightning接口_苹果新专利申请:iPhone或彻底淘汰Lightning接口!
- matlab 编写计算傅里叶系数函数
- html字数检测,检测已经输入字数.html