当我们最终完成一个python程序,希望能以命令行的方式直接执行,而不是通过编辑器修改其中的参数,这个时候就需要用到命令行解析的方式传入所需要的参数。argparse就是一个非常人性化的内建库。通过这个库,我们很容易实现如linux命令其中-h的帮助文档,其后的必选参数,可选参数。

官方文档如下,非常易于理解argparse - Parser for command-line options, arguments and sub-commands - Python 3.7.1rc2 documentation​docs.python.org

官方教程如下,同样易于理解Argparse Tutorial​docs.python.org

1.实例化一个解析对象

我们需要实例化出一个用来盛放帮助文档、参数信息等等所需信息的对象:

parser = argparse.ArgumentParser(description='-h/--help中的文档描述')

prog - The name of the program (default: sys.argv[0])

usage - The string describing the program usage (default: generated from arguments added to parser)

description - Text to display before the argument help (default: none)

epilog - Text to display after the argument help (default: none)

parents - A list of ArgumentParser objects whose arguments should also be included

formatter_class - A class for customizing the help output

prefix_chars - The set of characters that prefix optional arguments (default: ‘-‘)

fromfile_prefix_chars - The set of characters that prefix files from which additional arguments should be read (default: None)

argument_default - The global default value for arguments (default: None)

conflict_handler - The strategy for resolving conflicting optionals (usually unnecessary)

add_help - Add a -h/--help option to the parser (default: True)

allow_abbrev - Allows long options to be abbreviated if the abbreviation is unambiguous. (default: True)

2.添加参数

#位置参数,程序运行必须的

parser.add_argument('positonPara',help='description in doc',)

#可选参数。当忽略时其值为None,通过arg.参数名调用。

parser.add_argument('--longPara') #长参数

parser.add_argument('-s') #短参数

parser.add_argument('-p','--parameter') #同时给出两种可选参数的形式

add_argument 参数:

name or flags - Either a name or a list of option strings, e.g. foo or -f, --foo.

nargs - The number of command-line arguments that should be consumed.

const - A constant value required by some action and nargs selections.

choices - A container of the allowable values for the argument.

required - Whether or not the command-line option may be omitted (optionals only).

help - A brief description of what the argument does.

metavar - A name for the argument in usage messages.

dest - The name of the attribute to be added to the object returned by parse_args().

help := 文档内容

type := 参数格式,默认str

action := 对参数操作

action = 'store',默认,将参数后所跟的值以type指定的格式储存,供之后调用。

action = 'store_ture',命令行加上此可选参数即将参数值存为Ture,反之False。

action = 'store_false',与上条相反

action = 'append',将值保存到一个list中,重复的按多个值处理。

action = 'count',记录参数个数

action = 'version',打印版本信息

choices := list格式,限制选择的范围。如果超出则会报错。

required := 限制这个可选参数形式的参数必须被指定,否则报错

default := 默认参数

3.解析命令行

args = parser.parse_args()

调用parse_args()来解析命令行的内容,同时返回包含命令行内容的对象供之后使用。

4.访问参数

#执行程序

python test.py --help

usage: test.py [-h] [--longPara LONGPARA] []

positonal arguments:

posiPara description in doc

optional arguments:

-h, --help show this help message and exit

Logo

更多推荐