【发布时间】:2017-01-08 10:01:37
【问题描述】:
在 Python 中,我如何(无需重新发明 argparse 轮子)支持命令行选项语法 à la sed -i,其中一个选项采用可选参数 if & only if选项和它的参数之间没有空格吗?
天真地,我希望 argparse 通过设置 nargs='?' 来支持这一点,如下所示:
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-i', dest='backup', nargs='?', const='')
>>> parser.add_argument('arg', nargs='*')
...但它没有:
>>> parser.parse_args(['-i', '~'])
Namespace(backup='~', arg=[]) # wanted: Namespace(backup='', arg=['~'])
我有哪些选择?我更喜欢适用于 Python 2.7 和 Python 3.3+ 的答案。
【问题讨论】:
标签: python command-line-arguments