XiaoKL

XiaoKL学Python(D)argparse

argparse module

 

该文以Python 2为基础。

 

1. argparse简介

argparse 使得编写用户友好的命令行接口更简单。

argparse 知道如何解析sys.argv。

argparse 模块自动生成 “帮助” 信息和 “使用” 信息。

当用户使用了错误的命令行参数,argparse则报错。

 

2. argparse的使用

A) 使用argparse的第一步需要 创建ArgumentParser对象。

ArgumentParser对象将持有所有的解析命令的必要信息。

B) add_argument() 添加程序的Option信息。

C) ArgumentParser对象使用方法parse_args() 来解析命令行参数。该方法解写命令行,将每个参数转换为

合适的类型,然后调用合适的Action。

 

 

3. ArgumentParser对象

创建新的ArgumentParser对象,所有的参数应该以 keyword arguments 进行传参。

1 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: The name of the program (程序的名字)

usage: 描述如何使用程序。

description: 在 程序帮助 前面显示的文本。(默认:None)

epilog: 

parents:

formatter_class:

prefix_chars:

fromfile_prefix_chars:

argument_default:

conflict_handler:

add_help:

 

4. add_argument() 方法

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

 

5. Demo: ArgParseDemo.py

 1 from __future__ import print_function
 2 import argparse
 3 
 4 
 5 def main():
 6     parser = argparse.ArgumentParser()
 7     parser.add_argument('bar', nargs='?')
 8     parser.add_argument('foo', nargs='?')
 9     args = parser.parse_args()
10     print("foo: %s" % args.foo)
11     print("bar: %s" % args.bar)
12 
13 if __name__ == '__main__':
14     main()

运行该脚本如下: 

$ python ArgParseDemo.py ooo pp

foo: pp

bar: ooo

 

 


Reference

1. https://docs.python.org/2/library/argparse.html

 

2. Python Argparse Cookbook

https://mkaz.blog/code/python-argparse-cookbook/

 

3. How to Build Command Line Interfaces in Python With argparse

https://realpython.com/command-line-interfaces-python-argparse/

 

posted on 2015-04-23 11:12  XiaoKL  阅读(292)  评论(0编辑  收藏  举报

导航