這裏是我的解析器配置的款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