这里是我的解析器配置的款Argparse NARGS =“+”吃位置参数
parser.add_argument(
'infile', help="The file to be imported",
type=argparse.FileType('r'), default=sys.stdin
)
parser.add_argument(
'--carpark', nargs='+', dest='CarparkID', type=int, default=[],
help="One or many carpark IDs"
)
然而,--carpark
说法似乎过于贪婪,吃任何它后面:
$ mycommand --carpark 17 ~/path-to-file
mycommand: error: argument --carpark: invalid int value: '/home/oli/path-to-file'
什么是这样的好方法?我需要传递一个整数ID列表到命令中,但也有一个位置文件(也可以是stdin)。
是否有 - 例如,一个非贪婪的nargs
选项,只会解析这很有意义?
请注意,为位置参数指定默认值没什么意义,因为它们不是可选的。 – chepner
@chepner我的想法是允许我将事情管理到命令中,而不是做愚蠢的重定向。 – Oli