argparse --- 命令行选项、参数和子命令解析器

2021-02-20  本文已影响0人  butters001

argparse 模块可以让人轻松编写用户友好的命令行接口。

  1. 创建parser对象
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
  1. 添加参数
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
  1. 解析参数
args = parser.parse_args()

ArgumentParser 对象

常用参数

parser = argparse.ArgumentParser(prog='myprogram')

%(prog)s 格式串表示 sys.argv[0] 或 prog= 参数确定的程序名称的引用。

parser = argparse.ArgumentParser(description='A foo that bars')
parser = argparse.ArgumentParser(
    description='A foo that bars',
    epilog="And that's how you'd foo a bar")

add_argument() 方法

添加一个参数,定义这个命令行参数应当如何解析。

parser.add_argument('-f', '--foo')

而位置参数可以这么创建:

parser.add_argument('bar')

parse_args() 被调用,选项会以 - 前缀识别,剩下的参数则会被假定为位置参数

parser.add_argument('--version', action='version', version='%(prog)s 2.0')
parser.add_argument('--foo', default=42)
import argparse
import pathlib

parser = argparse.ArgumentParser()
parser.add_argument('count', type=int)
parser.add_argument('distance', type=float)
parser.add_argument('street', type=ascii)
parser.add_argument('code_point', type=ord)
parser.add_argument('source_file', type=open)
parser.add_argument('dest_file', type=argparse.FileType('w', encoding='latin-1'))
parser.add_argument('datapath', type=pathlib.Path)

用户自定义的函数也可以被使用:

>>> def hyphenated(string):
...     return '-'.join([word[:4] for word in string.casefold().split()])
...
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument('short_title', type=hyphenated)
>>> parser.parse_args(['"The Tale of Two Cities"'])
Namespace(short_title='"the-tale-of-two-citi')
parser.add_argument('--foo', required=True)
parser.add_argument('--foo', action='store_true',
                    help='foo the bars before frobbling')
上一篇 下一篇

猜你喜欢

热点阅读