首页 > 代码库 > 学习python argparse模块下载安装和使用

学习python argparse模块下载安装和使用

学习python argparse模块下载安装和使用

Python中argparse模块已经替代以前的optparse模块,常被用来实现命令行参数和选项的解析作用。

位置参数:

从一个最基本的程序开始(它并没有实现什么现实的功能):

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

下面是运行之后的结果:

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

    不加任何参数时结果是空

    第二次执行时命令行中加入了“--help”,得到了一个很友好的帮助信息。

    --help选项,也可以简写为-h,是唯一不需要我们设置就能使用的参数,其他的任何参数都会报错。



例子:

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

运行结果:

$ python prog.py
usage: prog.py [-h] echo
prog.py: error: the following arguments are required: echo
$ python prog.py --help
usage: prog.py [-h] echo

positional arguments:  echo

optional arguments:
  -h, --help  show this help message and exit
$ python prog.py foo
foo

    我们添加了add_argument()这个方法,它用来指定程序接受哪些命令行参数。在这个例子中,我们定义它为echo。

    现在调用程序时需要我们指定一个选项了。

    parse_args()方法实际上从我们的命令行参数中返回了一些数据,在上面的例子中是echo

尽管自动产生的帮助信息展示地很美观,但是我们仍然无法只根据echo这个参数知道它是做什么的。所以我们要让它变得更加实用一些。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo", help="echo the string you use here")
args = parser.parse_args()
print args.echo

再次运行:

$ python prog.py -h
usage: prog.py [-h] echo
positional arguments:  
    echo        echo the string you use here

optional arguments:
  -h, --help  show this help message and exit

接下来再添加一些:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number")
args = parser.parse_args()
print args.square**2

结果:

$ python prog.py 4
Traceback (most recent call last):
  File "prog.py", line 5, in <module>
    print args.square**2
TypeError: unsupported operand type(s) for ** or pow(): ‘str‘ and ‘int‘

运行后报错。这是因为默认情况下argparse把我们传递的参数当做string处理,所以在这个例子中我们需要告诉它我们将传递的是个整数类型的参数。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",type=int)
args = parser.parse_args()
print args.square**2

运行结果:

$ python prog.py 4
16
$ python prog.py four
usage: prog.py [-h] square
prog.py: error: argument square: invalid int value: ‘four‘

现在,这个程序能够顺利运行,而且能够处理一些错误输入。

稿源:勤快学QXKue.NET

扩展阅读:

学习python argparse模块下载安装和使用(1)

学习python argparse模块下载安装和使用(2)

学习python argparse模块下载安装和使用(3)

学习python argparse模块下载安装和使用(4)

学习python argparse模块下载安装和使用