Python 内置模块 argparse快速入门教程

 更新时间:2023年06月25日 15:24:57   作者:Amo Xiang  
argparse模块是Python内置的用于命令项选项与参数解析的模块,argparse模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数,这篇文章主要介绍了快速入门Python内置模块argparse,需要的朋友可以参考下

一、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    : https://blog.csdn.net/xw1680
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))

运行结果如下:

在这里插入图片描述

对上面代码进行解读:

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

在这里插入图片描述

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

在这里插入图片描述

二、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')

到此这篇关于快速入门 Python 内置模块 argparse的文章就介绍到这了,更多相关Python 内置模块 argparse内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴

    np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴

    今天小编就为大家分享一篇np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 基于Python绘制一个摸鱼倒计时界面

    基于Python绘制一个摸鱼倒计时界面

    前端时间推出了一个摸鱼APP,这篇文章将为大家介绍基于Python绘制一个摸鱼倒计时界面,文中的示例代码讲解详细,感兴趣的可以学习一下
    2021-12-12
  • python/Matplotlib绘制复变函数图像教程

    python/Matplotlib绘制复变函数图像教程

    今天小编就为大家分享一篇python/Matplotlib绘制复变函数图像教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 22个Python的万用公式分享

    22个Python的万用公式分享

    在大家的日常python程序的编写过程中,都会有自己解决某个问题的解决办法,或者是在程序的调试过程中,用来帮助调试的程序公式。小编通过几十万行代码的总结处理,总结出了22个python万用公式,可以帮助大家解决在日常的python编程中遇到的大多数问题,一起来看看吧
    2022-12-12
  • Python对ElasticSearch获取数据及操作

    Python对ElasticSearch获取数据及操作

    这篇文章主要为大家详细介绍了Python对ElasticSearch获取数据及操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Python利用socket模块开发简单的端口扫描工具的实现

    Python利用socket模块开发简单的端口扫描工具的实现

    这篇文章主要介绍了Python利用socket模块开发简单的端口扫描工具的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python内置函数map/filter/reduce详解

    python内置函数map/filter/reduce详解

    在Python中,map(), filter(), 和 reduce() 是内置的高级函数(实际是class),用于处理可迭代对象(如列表、元组等)的元素,这篇文章主要介绍了python内置函数map/filter/reduce的相关知识,需要的朋友可以参考下
    2024-05-05
  • 你知道怎么改进Python 二分法和牛顿迭代法求算术平方根吗

    你知道怎么改进Python 二分法和牛顿迭代法求算术平方根吗

    这篇文章主要介绍了Python编程实现二分法和牛顿迭代法求平方根代码的改进,具有一定参考价值,需要的朋友可以了解下,希望能够给你带来帮助
    2021-08-08
  • 使用pandas实现连续数据的离散化处理方式(分箱操作)

    使用pandas实现连续数据的离散化处理方式(分箱操作)

    今天小编就为大家分享一篇使用pandas实现连续数据的离散化处理方式(分箱操作),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python的迭代器和生成器

    Python的迭代器和生成器

    由于在看一个python项目,遇到了迭代器和生成器的使用,正好之前自己也没有细看这部分,今天就稍微梳理一下吧!
    2015-07-07

最新评论