目录

一、使用到的具体函数

二、程序用法说明

三、位置参数 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用法总结相关推荐

  1. python 命令行参数—argparse模块的使用

    简单示例 我们先来看一个简单示例.主要有三个步骤: 创建 ArgumentParser() 对象 调用 add_argument() 方法添加参数 使用 parse_args() 解析添加的参数 .示 ...

  2. Python 命令行参数:Argparse 与 Click

    Python 命令行参数:Argparse 与 Click 简介 一.Argparse 模块 1.1 概念 1.2 基础 1.3 位置参数介绍 1.4 可选参数介绍 1.5 短选项 1.6 结合位置参 ...

  3. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  4. 对于python命令行参数使用,你应该这么做才专业

    python命令行参数 在python开发中,我们经常会遇到在执行代码时,需要给代码传参的情况. 遇到传参的场景,最基础的传参方式为*.py argv1 argv2 ...,然后我们在代码中通过sya ...

  5. python 命令行 参数_Python命令行参数

    python 命令行 参数 Python Command line arguments are input parameters passed to the script when executing ...

  6. 一日一技python安装_一日一技:快速实现Python 命令行参数

    一日一技:快速实现Python 命令行参数 摄影:产品经理 厨师:kingname 我们有时候需要使用 Python 开发一些命令行工具,并在运行命令的时候指定一些参数,例如: python3 xxx ...

  7. Python 命令行参数详解

    Python 命令行参数详解 0. 命令行参数 1. sys.argv 2. getopt 2.1 getopt.getopt 方法 2.2 Exception getopt.GetoptError ...

  8. Python命令行参数解析模块getopt使用实例

    这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...

  9. git 忽略__pycache___容易被忽略的 Python 命令行参数

    上周编写了一个 Python 脚本用于将一堆包含 oracle dmp 文件的 rar 压缩包恢复到 oracle 数据库.由于 oracle dmp 文件恢复速度较慢,通过 nohup commad ...

最新文章

  1. Stanford UFLDL教程 池化Pooling
  2. 数据结构和算法 —— 绪论
  3. 网站前端性能优化之javascript和css
  4. caffeine 缓存_使用Caffeine和Spring Boot的多个缓存配置
  5. React开发(131):ant design学习指南之form中的resetFields
  6. dynamips中网卡参数如何和网络连接中的具体网卡匹配
  7. Javascript 调用MSAgent
  8. Quartus II13.0的破解过程
  9. Apache配置文件中的deny和allow的使用
  10. 我的JAVA面试经验(5年左右工作经验)
  11. UE4 Sequencer的事件调用
  12. java计算机毕业设计小区失物招领网站源程序+mysql+系统+lw文档+远程调试
  13. 软件测试2小时入门-曹红杏-专题视频课程
  14. PPI (手机屏幕的PPI 和计算方法)
  15. 计算机设备标签怎么贴,电脑怎么打印不干胶标签 电脑打印不干胶标签操作流程【图文】...
  16. 吞吐量和IOPS测试
  17. ElasticSearch——Day04
  18. java计算机毕业设计中学招生管理系统源码+数据库+系统+lw文档+mybatis+运行部署
  19. 计算机视觉之利用颜色进行肤色检测(基于OpenCV自带库函数)
  20. 二十二.jmeter在linux下运行

热门文章

  1. 计算机综合症怎么治,如何防治电脑综合征?
  2. LVGL V8之buttons styles
  3. 使用git拉取阿里云code托管的项目中的指定分支
  4. 埋点治理-埋点SQL监控
  5. 炒股开户第二证券|本届世界杯小组赛首轮 亚足联6支球队2胜1平3负
  6. linux查看redis命令,linux查看redis版本怎么操作?具体示例
  7. oracle revoke 列_Oracle Grant 与 Revoke的用法
  8. lightning接口_苹果新专利申请:iPhone或彻底淘汰Lightning接口!
  9. matlab 编写计算傅里叶系数函数
  10. html字数检测,检测已经输入字数.html