跳转到主要内容

Python 2/3 兼容的命令行参数解析器

项目描述

一个用于解析命令行参数的实用类。

构造函数

@param names list<string> - 这是一个“名称”列表,应反映每个参数。
@param shortOptions list<string> - 这是一个短选项(-x val)列表。长度应与names匹配。如果没有短选项,则使用‘None’。省略前导-
@param longOptions list<string> - 这是一个长选项(–xyz val或–xyz= val)列表。如果没有长选项,则使用‘None’。省略前导–
@param staticOptions list<string> - 这是一个静态选项列表(只有存在就有意义的参数,不需要额外的值)。
此列表中的任何成员都将出现在#parse的结果中,存在时设置为True,否则为False。
@param multipleStaticOptions <dict> - 一个字典,用于解析多个静态参数,这些参数解析为单个值。键是“名称”,值是所有潜在值。例如:{'cheese' : ['–cheddar', 'gouda']} 结果中存在'gouda'或'–cheddar'时,将cheese设置为True,否则为False。
@param allowOtherArguments <bool> 默认 False - 如果为 False,则将未指定的参数视为错误。无论值如何,不匹配的参数都将出现在返回值的“unmatched”键中。

函数

def parse(args)
parse - 解析提供的参数并返回它们的信息。如果使用 sys.argv,则省略第一个参数。
@return - 字典的键是
‘result’ => 结果名称-值的字典
‘errors’ => 错误字符串列表,或空列表
‘warnings’ => 警告字符串列表,或空列表
‘unmatched’ => 不匹配参数的字符串列表,按顺序排列

示例

In [1]: from ArgumentParser import ArgumentParser
In [2]: parser = ArgumentParser(['firstName', 'lastName', 'birthday'],
…: ['f', 'l', 'b'],
…: ['first-name', 'last-name', 'birthday'],
…: ['–citizen'])
)

In [3]: parser.parse('-f Tim –last-name=savannah –birthday 6/28'.split(' ‘))
Out[3]
{‘errors’: [],
‘result’: {'–citizen': False,
‘birthday': '6/28',
‘firstName': ‘Tim’,
‘lastName': ‘savannah’},
‘warnings’: [],
‘unmatched’ : []}

In [4]: parser.parse('-f Tim –last-name=savannah –citizen'.split(' ‘))
Out[4]
{‘errors’: [],
‘result’: {'–citizen': True, ‘firstName’: ‘Tim’, ‘lastName': ‘savannah’},
‘warnings’: [],
‘unmatched’: []}

示例2

>>> from ArgumentParser import ArgumentParser
>>> parser = ArgumentParser(['name'], ['n'], ['name'], None, False)
>>> parser.parse('-n hello some other args'.split(' ‘))
{‘errors’: ["未知参数 ‘some’ (位置 2)", "未知参数 ‘other’ (位置 3)", "未知参数 ‘args’ (位置 4)"], ‘result’: {'name': ‘hello’}, ‘unmatched’: ['some', ‘other', ‘args’], ‘warnings’: []}
>>> parser = ArgumentParser(['name'], ['n'], ['name'], None, True)
>>> parser.parse('-n hello some other args'.split(' ‘))
{‘errors’: [], ‘result’: {'name': ‘hello’}, ‘unmatched’: ['some', ‘other', ‘args’], ‘warnings’: []}

示例3

>>> import ArgumentParser
>>> parser = ArgumentParser.ArgumentParser(('one', 'two'), ('o', 't'), ('uno', 'dos'), ('x'), {'cheese': ['cheddar', 'gouda'], 'baby': {'child', 'infant'}})
>>> parser.parse(['-o', ‘1', ‘cheddar’])
{‘errors’: [], ‘result’: {'baby': False, ‘cheese': True, ‘x': False, ‘one': ‘1’}, ‘unmatched’: [], ‘warnings’: []}

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

argumentparser-1.2.1.tar.gz (4.0 kB 查看哈希值)

上传时间 源代码

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面