Python命令行解析工具argparse模块

 更新时间:2023年05月18日 09:46:27   作者:FLy_鹏程万里  
这篇文章主要介绍了Python命令行解析工具argparse模块,argparse模块是一个python标准库,它主要用于对用户从客户端输入的命令进行解析,这使得编写用户友好的命令行接口变得非常容易,需要的朋友可以参考下

argparse模块简介

argparse模块是一个python标准库,它主要用于对用户从客户端输入的命令进行解析,这使得编写用户友好的命令行接口变得非常容易。

程序只需要定义好用户可以从终端可以输入哪些参数,以及参数对应的含义、数据类型即可,然后argparse将负责从sys.argv中解析出这些参数。argparse模块还会自动生成帮助信息和使用信息并且当用户赋给程序非法的参数的时候会出现友好的错误提示信息。

使用方法

(1)导入argparse模块

(2)创建一个解析器对象

(3)使用对象内置的add_argument()方法添加需要关注的命令参数和选项

(4)之后调用parse_args()方法解析命令即可

示例:

import argparse                     #导入argparse该模块;
parser = argparse.ArgumentParser()  #创建一个解析器对象
parser.add_argument()               #添加令行参数和选项,每一个add_argument方法对应一个参数或选项;
args=parser.parse_args()            #调用parse_args()方法进行解析,解析成功之后即可使用    

ArgumentParser对象介绍

class argparse.ArgumentParser(
                prog=None, 
                usage=None, 
                description=None, 
                epilog=None, 
                parents=[], 
                formatter_class=argparse.
                HelpFormatter, 
                prefix_chars='-',
                fromfile_prefix_chars=None, 
                argument_default=None, 
                conflict_handler='error', 
                add_help=True)

参数说明:

参数描述
prog程序的名字(默认:sys.argv[0])
usage描述程序用法的字符串(默认:从解析器的参数生成)
description参数帮助信息之前的文本(默认:空)
epilog参数帮助信息之后的文本(默认:空)
parentsArgumentParser 对象的一个列表,这些对象的参数应该包括进去
formatter_class定制化帮助信息的类
prefix_chars可选参数的前缀字符集(默认:‘-‘)
fromfile_prefix_chars额外的参数应该读取的文件的前缀字符集(默
argument_default参数的全局默认值(默认:None)
conflict_handler解决冲突的可选参数的策略(通常没有必要)
add_help给解析器添加-h/–help 选项(默认:True)

add_argument函数简介

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

参数说明

参数描述
name or flags选项字符串的名字或者列表,例如foo 或者-f, –foo
action在命令行遇到该参数时采取的基本动作类型。
nargs应该读取的命令行参数数目。
const某些action和nargs选项要求的常数值。
default如果命令行中没有出现该参数时的默认值。
type命令行参数应该被转换成的类型。
choices参数可允许的值的一个容器。
required - 该命令行选项是否可以省略(只针对可选参数)。
help参数的简短描述。
metavar参数在帮助信息中的名字。
dest给parse_args()返回的对象要添加的属性名称。

其中“type”、“help”、“action”、“default”、“name ”、“dest”使用最为频繁

实战演示

(1)可选参数

代码如下:

import argparse
parser=argparse.ArgumentParser()
parser.add_argument("-display",help="display the message!")
args=parser.parse_args()
if args.display:
    print "Display is trun on!"

运行结果:

注:可选参数可以在add_argment("这里如果加上“-”,则说明是可选的,否则是必须的")定义

(2)短选项

有时候写一个匹配项的时候还需要写全拼,实在是有些麻烦,在Linux中大多数的交互命令都有简写,那么我们也可以来进行设置短选项

代码如下:

import argparse
parser=argparse.ArgumentParser()
parser.add_argument("-d","--display",help="display the message!",action="store_true")
args=parser.parse_args()
if args.display:
    print "Display is trun on!"

(3)结合位置参数与可选参数

代码如下:

import argparse  
parser = argparse.ArgumentParser()  
parser.add_argument("square", type=int,  
                    help="display a square of a given number")  
parser.add_argument("-v", "--verbose", action="store_true",  
                    help="increase output verbosity")  
args = parser.parse_args()  
answer = args.square**2  
if args.verbose:  
    print "the square of {} equals {}".format(args.square, answer)  
else:  
    print answer  

运行结果如下:

到此这篇关于Python命令行解析工具argparse模块的文章就介绍到这了,更多相关Python的argparse模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django框架中数据的连锁查询和限制返回数据的方法

    Django框架中数据的连锁查询和限制返回数据的方法

    这篇文章主要介绍了Django框架中数据的连锁查询和限制返回数据的方法,Django是Python重多高人气框架中最为著名的一个,需要的朋友可以参考下
    2015-07-07
  • Python 常用模块threading和Thread模块之线程池

    Python 常用模块threading和Thread模块之线程池

    这篇文章主要介绍了Python threading和Thread模块之线程池,线程池如消费者,负责接收任务,并将任务分配到一个空闲的线程中去执行。并不关心是哪一个线程执行的这个任务,具体介绍需要的小伙伴可以参考下面文章详细内容
    2022-06-06
  • python 爬虫 实现增量去重和定时爬取实例

    python 爬虫 实现增量去重和定时爬取实例

    今天小编就为大家分享一篇python 爬虫 实现增量去重和定时爬取实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • opencv+tesseract实现验证码识别的示例

    opencv+tesseract实现验证码识别的示例

    本文主要介绍了opencv+tesseract实现验证码识别的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Python基础之常用库常用方法整理

    Python基础之常用库常用方法整理

    这篇文章主要介绍了Python基础之常用库常用方法整理,文中有非常详细的代码示例,对正在学习python基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Pycharm修改内存限制不生效问题及解决方案

    Pycharm修改内存限制不生效问题及解决方案

    本文主要讲述了在更改PyCharm内存大小限制后,不生效的问题,以及解决方法,原因在于用户可能未购买PyCharm Pro版本,正确的配置文件路径在环境变量中,修改完成后需要重启PyCharm,设置的是JVM的内存限制,而不是Python脚本的内存使用
    2026-04-04
  • pycharm中使用request和Pytest进行接口测试的方法

    pycharm中使用request和Pytest进行接口测试的方法

    这篇文章主要介绍了pycharm中使用request和Pytest进行接口测试的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 详解Python如何获取和理用户的连续输入

    详解Python如何获取和理用户的连续输入

    这篇文章主要为大家详细介绍了如何在 Python 中获取和处理用户的连续输入,包括基本的输入方法、输入验证、异常处理以及一些常见的应用场景,感兴趣的可以了解下
    2024-03-03
  • Python高阶函数之filter()函数代码示例

    Python高阶函数之filter()函数代码示例

    这篇文章主要介绍了Python高阶函数之filter()函数代码示例,获取了一个序列的时候,想要把一些内容去掉,保留一部分内容的时候可以使用高效的filter()函数,需要的朋友可以参考下
    2023-07-07
  • 小试Python中的pack()使用方法

    小试Python中的pack()使用方法

    这篇文章主要介绍了小试Python中的pack()使用方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论