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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python入门游戏之井字棋实例代码

    python入门游戏之井字棋实例代码

    python井字棋游戏虽然看上去非常简陋,但是却非常值得学习,下面这篇文章主要给大家介绍了关于python入门游戏之井字棋的相关资料,需要的朋友可以参考下
    2021-11-11
  • 如何使用python统计字符在文件中出现的次数

    如何使用python统计字符在文件中出现的次数

    在开发过程中很多时候我们有统计单个字符或者字符串在另一个字符串中出现次数的需求,下面这篇文章主要给大家介绍了关于如何使用python统计字符在文件中出现的次数的相关资料,需要的朋友可以参考下
    2023-03-03
  • Python3中的多行输入问题

    Python3中的多行输入问题

    这篇文章主要介绍了Python3中的多行输入问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 超详细注释之OpenCV dlib实现人脸采集

    超详细注释之OpenCV dlib实现人脸采集

    这篇文章主要介绍了OpenCV dlib实现人脸采集,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Pytorch中的学习率衰减及其用法详解

    Pytorch中的学习率衰减及其用法详解

    这篇文章主要介绍了Pytorch中的学习率衰减及其用法详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Python的Django框架中消息通知的计数器实现教程

    Python的Django框架中消息通知的计数器实现教程

    通知的计数器非常有用,新通知时+1和读过通知后的-1是最基本的功能,这里我们就来看一下Python的Django框架中消息通知的计数器实现教程
    2016-06-06
  • python字符串的index和find的区别详解

    python字符串的index和find的区别详解

    这篇文章主要介绍了python字符串的index和find的区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python入门教程(三十一)Python的Try和Except

    Python入门教程(三十一)Python的Try和Except

    这篇文章主要介绍了Python入门教程(三十一)Python的Try Except,当我们调用Python并发生错误或异常时,通常会停止并生成错误消息,
    可以使用try语句处理这些异常,需要的朋友可以参考下
    2023-05-05
  • python-docx如何缩进两个字符

    python-docx如何缩进两个字符

    笔者遇到这样的需求要求正文内容每段首行顶两格,也就是向右缩进两个字符,怎么操作呢?下面小编给大家带来了python-docx的缩进问题——如何缩进两个字符,需要的朋友可以参考下
    2022-11-11
  • 详解Python小数据池和代码块缓存机制

    详解Python小数据池和代码块缓存机制

    这篇文章主要介绍了详解Python 小数据池和代码块缓存机制的相关资料,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04

最新评论