python 中argparse 实例解析

枫铃3年前 (2021-07-10)Python220

一 概念:

argparse是python的一个命令行解析包。它可以使写用户友好的命令行接口变得非常容易。该模块定义什么参数是需要的,并且能指出怎么解析sys.argv的参数。它也可以自动的生成帮助和使用指南。

二 使用指南:

1 基本用法:没有参数输入的情况。

#!/usr/bin/env python
# encoding: utf-8


import argparse
parser = argparse.ArgumentParser()
parser.parse_args()

根据下面的输出结果可以看出,这样只能默认是-h的输入,别的输入参数就会上报错误。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
$ python base.py 
$ python base.py -h
usage: base.py [-h]

optional arguments:
  -h, --help  show this help message and exit
$ python base.py -v
usage: base.py [-h]
base.py: error: unrecognized arguments: -v

2 参数输入,直接参数可用。

#!/usr/bin/env python
# encoding: utf-8

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("audio")
args = parser.parse_args()
print args.audio

使用方法和结果:

$ python base.py audio
audio

3 可选参数和类型:

下面的这个参数square 的类型是限定在int类型,-v的类型使用choices限定在[0,1,2],这样就能很方便的看出来该解析函数的使用方法。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#!/usr/bin/env python
# encoding: utf-8

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
                            help="display a square of a given number")
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2],
                            help="increase output verbosity")
args = parser.parse_args()
answer = args.square**2
if args.verbosity == 2:
        print "the square of {} equals {}".format(args.square, answer)
elif args.verbosity == 1:
        print "{}^2 == {}".format(args.square, answer)
else:
        print answer
~

使用和运算结果:

$ python choices_arg.py 4 -v 2
the square of 4 equals 16
$ python choices_arg.py -v 2
usage: choices_arg.py [-h] [-v {0,1,2}] square
choices_arg.py: error: too few arguments

相关文章

python数据类型详解(全面)

python数据类型详解(全面)

1、字符串 1.1、如何在Python中使用字符串 a、使用单引号(’) 用单引号括起来表示字符串,例如: str=&#...

Python切片中的误区与高级用法

众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串、列表、元组…)中的单个...

Python 操作字典 的几个技巧

Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何优雅的操作字典. 1 创建字典 Python有两种方法可以创建字典,第一种是...

python 使用进程池Pool进行并发编程

进程池Pool 当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如...

Python模块的四种形式

Python模块的四种形式

一、什么是模块? 模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体。一个p...

Python字符串截取值

Python字符串截取值

接口返回一个json。j...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。