argparse--python 命令行解释

python命令行解释器包argparse

为什么要用argparse

因为最近一直用python,python很好,有很多的开源工具包。然而python作为一种脚本式编程语言,交互性很好。这对于一开始学习的时候提供了很大的便利,不用考虑太多的语法等等。然而当再深入一点就会遇到一些麻烦的地方,比如说我写了一个深度学习项目,不想用grid search, 而是想用手调一些参数。这样呢偏偏我用在用连接远程服务器,每次都要用vim打开函数,然后修改参数再运行,真的很辛苦啊。幸运的是我了解到了原来python有argparse这样的工具,这样就可以直接在终端里直接尝试不同的参数了,那么接下来就要开始学习一些例子了。

如何使用argparse

下面是一个例子,输入一列数,输出是最大值或者求和值。

import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N',type=int, nargs='+',help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const', 
					const=sum, default=max,
				  	help='sum the integers (default: find the max)' )
args = parser.parse_args()
print(args.accumulate(args.integers))			  	

下面是测试代码:

$ python prog.py -h
usage: prog.py [-h] [--sum] N [N ...]

Process some integers.

positional arguments:
 N           an integer for the accumulator

optional arguments:
 -h, --help  show this help message and exit
 --sum       sum the integers (default: find the max)
$ python prog.py 1 2 3 4
4

$ python prog.py 1 2 3 4 --sum
10

注意使用argparse的第一步是创建一个ArgumentParser 对象:

>>> parser = argparse.ArgumentParser(description='Process some integers.')

该对象会保存命令行里的命令并转换为python的相应数据类型。由于命令信息已经保存在parser对象当中,因此后面需要将信息解析并作为python的输入。


>>> parser.add_argument('integers', metavar='N', type=int, nargs='+',
...                     help='an integer for the accumulator')
>>> parser.add_argument('--sum', dest='accumulate', action='store_const',
...                     const=sum, default=max,
...                     help='sum the integers (default: find the max)')

然后 parse_args() 方法将会返回一个拥有两个属性的对象。1

To be continue

argparse更高级的功能有待慢慢学习。


  1. argparse — Parser for command-line options, arguments and sub-commands ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_38957591/article/details/84561680