Python 杂记:argparse 模块

简介

Python 标准库中提供了 argparse 模块用于解析命令行参数。

使用它的简单三个步骤:

  • 创建 argparse.ArgumentParser() 对象
  • 调用 add_argument() 方法添加参数配置
  • 调用 parse_args() 方法解析参数

然后,我们就可以通过 parse_args() 方法返回的对象来访问用户传入的命令行参数了。

示例一

示例代码如下:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-s", "--src", help="Source file", required=True)
parser.add_argument("-d", "--dst", help="Destination directory")      # 可选参数
parser.add_argument("--level", help="Running level", type=int, default=2)
parser.add_argument("--debug", help="Running in debug mode", action="store_true") # 不用指定参数值,默认为 True
args = parser.parse_args()
print(args) # 这里还可以通过 args.src、args.dst、args.level、args.debug 直接访问各个参数值

# 测试示例:
1> python test.py --src test.txt
Namespace(debug=False, dst=None, level=2, src='test.txt')

2> python test.py --src test.txt --dst test.out --debug
Namespace(debug=True, dst='test.out', level=2, src='test.txt')

3> python test.py --help         # 默认是会添加 -h, --help 参数的,并且可以直接打印 usage 信息
usage: test.py [-h] -s SRC [-d DST] [--level LEVEL] [--debug]

optional arguments:
  -h, --help         show this help message and exit
  -s SRC, --src SRC  Source file
  -d DST, --dst DST  Destination directory
  --level LEVEL      Running level
  --debug            Running in debug mode

其中:

  • 以“-”开头指定可用的命令行参数:

    • 以一个横线“-”开头的选项称为“短选项”
    • 以两个横线“-”开头的称为“长选项”
    • parse_args() 返回对象的属性中,默认使用第一个长选项名字保存该参数值
    • 若没有指定长选项,则默认使用第一个端选项名字保存
    • 若参数名字中也包含横线(例如:--ignore-error),则其中横线替换为下划线(属性名为 ignore_error )
  • help 用于设置指定显示在 help 文档中的描述
  • required 用于指定该参数是否为必需参数,默认为可选参数
  • type 用于指定该参数值的类型(会自动做类型检查和转换)
  • default 用于指定在省略该参数时的默认值
  • action="store_true" 用于表明该参数可以不带参数值,默认值为 True,若是使用“store_false”,则默认为 False

示例二

像 mv 这类 linux 命令,我们可以只传入参数值,而不需要指定参数名,例如:

mv file1 file2

要实现这种参数,add_argument() 中的参数可以指定名字(而不是以横线开头的选项),例如:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--foo", help="A required option", required=True)
parser.add_argument("src", help="Source file")
parser.add_argument("dst", help="Destination file or directory")
parser.add_argument("--force", help="Force to rename or remove", action="store_true")
args = parser.parse_args()
print(args)     # 我们也可以直接使用 args.src 和 args.dst 直接访问这俩参数

# 测试示例:
1> python test.py file1 file2
Namespace(dst='file2', src='file1')

2> python test.py --force file1 --foo 123 file2
Namespace(dst='file2', foo='123', force=True, src='file1')

这种参数也叫“位置参数”,所有位置参数出现的顺序需与 add_argument() 的调用顺序相同,不过对于“非位置参数”(以横线开头的选项参数)不受此限制。

其它说明

add_argument() 方法中有两个有用的参数:

  • dest:前面示例一的描述中提到 parse_args() 返回对象的属性名的默认规则,若用户在调用 add_argument() 指定了 dest 参数,也可以强制自定义属性名。
  • metavar:用于指定该参数在 help 信息中显示的名字

关于该模块更多描述,请参考:https://docs.python.org/3/library/argparse.html

原文地址:https://www.cnblogs.com/itwhite/p/12433360.html

时间: 2024-10-13 05:46:19

Python 杂记:argparse 模块的相关文章

Python的Argparse模块是什么?(未完)

        近日在阅读代码的过程中遇到了Argparse模块,记得前段时间已经看了,可是过了两周现在又忘了, 看来写代码一定要钻研到底搞清楚其中原委才行,本文主要参考Python3.6系列官方文档的Argparse模块的教程. 注意:还有两个模块与Argparse功能相似,getopt和optparse. argparse基于optparse,因此在使用方面非常相似,但是不推荐使用optparse,官方文档更推荐argparse. 1.Argparse的作用 举一个小例子,在Linux系统中

Python的argparse 模块处理参数

import argparse USAGE = """ %prog -q phylogroup -o out_file, you shall provide the phyloname of query """ parser = argparse.ArgumentParser(description = USAGE) parser.add_argument('-o', "--output", default = "t

python中argparse模块的使用

有两个文件一个是 文件1:sync_shop_source_bimer.sh 文件2:sync_shop_source_bimer.py 在sync_shop_source_bimer.sh 中调用sync_shop_source_bimer.py 文件1中产生的文件要传递给文件2 文件1中的内容 shop_flow_output="/tmp/shop_flow_source" shop_gmv_output="/tmp/shop_gmv_source" yesda

python的argparse模块parse_known_args()方法的使用

parse_known_args()方法的用处就是有些时候,你的选项配置可能不会在一个函数或包中调用完成 在很多使用,我们可能会需要根据一些输入的选项,比如在深度学习中,我们可能会根据传入的模型设置--model来决定我们调用的是那个模型代码,然后在该模型中还会有一部分的选项设置 那么这时候就会出现一种情况就是运行命令中会传入所有需要设置的选项值,但是有时候仅获取到基本设置时可能要进行一些操作然后才继续导入剩下的参数设置 parse_known_args()方法的作用就是当仅获取到基本设置时,如

学习python argparse模块下载安装和使用

Python中argparse模块已经替代以前的optparse模块,常被用来实现命令行参数和选项的解析作用. 位置参数: 从一个最基本的程序开始(它并没有实现什么现实的功能): import argparseparser = argparse.ArgumentParser()parser.parse_args() 下面是运行之后的结果: $ python prog.py$ python prog.py --helpusage: prog.py [-h]optional arguments: 

python argparse模块

python argparse 模块的功能是对命令行进行解析,检查命令行是否符合预定义的格式. 使用方法: 1.导入argparse模块   import argparse 2.创建argparse对象   parser = argparse.ArgumentParser() 3.添加命令行相关参数.选项  parser.add_argument("...") 4.解析    parser.parse_args() 例一:(删除指定的zabbix screen) #!/usr/bin/

python学习之argparse模块

这里只给出常见的用法,具体原理和详细说明参考官网的说明文档: 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数,例如python parseTest.py input.txt output.txt --user=name --port=8080. 二.使用步骤: 1:import argparse 2:parser = argparse.ArgumentParser() 3:par

python argparse模块解析命令行选项简单使用

argparse模块的解析命令行选项简单使用 util.py #!/usr/bin/env python # coding=utf-8 import argparse parser = argparse.ArgumentParser(prog="myprogram ",description="a test of argparse") parser.add_argument("-a",type=int,dest="start"

Python中的argparse模块

argparse是argument(参数)和parser(解析器)的缩写 argparse模块是向.py文件传递参数.如果你想直接运行.py文件,同时向文件中传递参数,就要使用这个模块. 使用这个模块的步骤分以下几步: 1 引入模块 import argparse 2 创建解析对象parser parser = argparse.ArgumentParser() 3 向对象中添加参数 parser.add_argument(name or flag, nargs= , action= ,type