目录

  • 一、argparse 简介
  • 二、The add_argument() method


一、argparse 简介

argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse

使用 argparse 模块的四个步骤:

导入 argparse 包

import argparse

创建一个命令行解析器对象

# 创建 ArgumentParser() 对象
parser_ = argparse.ArgumentParser(description="study argparse")

给解析器添加命令行参数 ——调用 add_argument() 方法添加参数

parser_.add_argument('food')

解析命令行的参数 ——使用 parse_args() 解析添加的参数,并将结果用 print 语句输出

args = parser_.parse_args()
print(args.food)
print(type(args.food))

代码示例:

# -*- coding: utf-8 -*-
# @Time    : 2023-04-19 15:48
# @Author  : AmoXiang
# @File    : test.py
# @Software: PyCharm
# @Blog    : 

import argparse  # 1.导入argparse

# 2.创建一个命令行解析器对象
parser_ = argparse.ArgumentParser(description="study argparse")
# 3.给解析器添加命令行参数
parser_.add_argument('food')
# 4.解析命令行的参数并打印
args = parser_.parse_args()
print(args.food)
print(type(args.food))

运行结果如下:

python arcpy库怎么安装 argparser python_python


对上面代码进行解读:

首先我们导入 argparse 这个包,然后包中的 ArgumentParser 类生成一个 parser 对象(其中的 description 对参数解析器的作用进行描述),当我们在命令行显示帮助信息的时候会看到 description 描述的信息。例如:python test.py -h

python arcpy库怎么安装 argparser python_开发语言_02


接着我们通过对象的 add_argument 函数来增加参数。这里我们增加了 food 参数,最后采用对象的 parse_args 获取解析的参数。打印结果如下图所示:


python arcpy库怎么安装 argparser python_pycharm_03

二、The add_argument() method

add_argument() 方法定义如何解析单个命令行参数, 语法如下:

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help]
[, metavar][, dest])

后续示例代码会用到的参数解释:

① name or flags - Either a name or a list of option strings, e.g. foo or -f, --foo. 必要参数
② choices - A container of the allowable values for the argument.
③ type - The type to which the command-line argument should be converted.
④ default - The value produced if the argument is absent from the command line.
⑤ help - A brief description of what the argument does.

name or flags 第一种写法如下:

import argparse

parser_ = argparse.ArgumentParser(description="study argparse")
# 该种方式则要求必须输入该参数
parser_.add_argument('food')
args = parser_.parse_args()
print(args.food)
print(type(args.food))

命令行运行方式:

E:\download\AccountPool-master>python3 test.py 2
2
<class 'str'> 这种方式会将 2 赋值给food

E:\download\AccountPool-master>python3 test.py noodles
noodles
<class 'str'> 这种方式会将 noodles 赋值给food

name or flags 第二种写法如下:

# 1.--house 代表参数名称
# 2.type 代表输入的参数类型,从命令行输入的参数,默认是字符串类型
# 3.default 代表如果该参数不输入,则会默认使用该值
import argparse

parser_ = argparse.ArgumentParser(description="study argparse")
parser_.add_argument('--house', type=int, default=0)
args = parser_.parse_args()
print(args.house)
print(type(args.house))

命令行运行方式:

E:\download\AccountPool-master>python3 test.py --house 1
1
<class 'int'>

E:\download\AccountPool-master>python3 test.py
0
<class 'int'>

name or flags 第三种写法如下:

# -gf 代表短选项,在命令行输入-gf和--girlfriend的效果是一样的,作用是简化参数输入
# --girlfriend 代表完整的参数名称,可以尽量做到让人见名知意,需要注意的是如果想通过解析后的参数取出该值,必须使用带--的名称
# choices 代表输入参数的只能是这个choices里面的内容,其他内容则会保错
import argparse

parser_ = argparse.ArgumentParser(description="study argparse")
parser_.add_argument('-gf', '--girlfriend', choices=['jingjing', 'lihuan'])
parser_.add_argument('food')
args = parser_.parse_args()
print(args.food)
print(type(args.food))
print(args.girlfriend)
print(type(args.girlfriend))

命令行运行方式:

E:\download\AccountPool-master>python3 test.py --girlfriend jingjing
usage: test.py [-h] [-gf {jingjing,lihuan}] food
test.py: error: the following arguments are required: food

E:\download\AccountPool-master>python3 test.py --girlfriend jingjing amoxiang
amoxiang
<class 'str'>
jingjing
<class 'str'>

E:\download\AccountPool-master>python3 test.py -gf jingjing amoxiang
amoxiang
<class 'str'>
jingjing
<class 'str'>

E:\download\AccountPool-master>python3 test.py -gf amoxiang1 amoxiang2
usage: test.py [-h] [-gf {jingjing,lihuan}] food
test.py: error: argument -gf/--girlfriend: invalid choice: 'amoxiang1' (choose from 'jingjing', 'lihuan')