【发布时间】:2017-02-23 07:13:59
【问题描述】:
如下代码所示,我想有一个可选的位置参数files,我想为它指定一个默认值,当传入路径时,使用指定路径。
但是因为--bar可以有多个参数,所以传入的路径没有进入args.files,我该如何解决呢?谢谢!
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo')
parser.add_argument('--bar', nargs='*')
parser.add_argument('files', nargs='?')
cmd = '--foo a --bar b c d '
print parser.parse_args(cmd.split())
# Namespace(bar=['b', 'c', 'd'], files=None, foo='a')
cmd = '--foo a --bar b c d /path/to/file1'
print parser.parse_args(cmd.split())
# Namespace(bar=['b', 'c', 'd', '/path/to/file1'], files=None, foo='a')
【问题讨论】:
-
argparse怎么知道/path/to/file1与files而不是bar?
标签: python parsing argparse optparse optional-arguments