我想使用 argparse 的 {choices} 参数,但允许用户从选择中输入任意数量的项目。例如,如果选择是 [1,2,3],我希望以下内容有效:
--arg 1
--arg 1,2
--arg 1,3
Run Code Online (Sandbox Code Playgroud)
等等。
但是,使用 nargs="+" 时,选择似乎不接受逗号分隔的输入。有没有办法解决?我仍然想强制传入的选项在我定义的选项集中,以便对奇怪的输入进行错误检查。
One*_*Day 13
我同意 - 你会认为 API 现在允许某人这样做吗?
无论如何,我一直使用的解决方法如下:
p = argparse.ArgumentParser(description="Why doesn't argparse support list of args?")
parser.add_argument('--arg', type=str)
arg_list = parser.parse_args().args.split(",")
# if you wanted integers:
arg_list = [int(x) for x in arg_list]
Run Code Online (Sandbox Code Playgroud)
又名:接受一个字符串并自己处理它。
| 归档时间: |
|
| 查看次数: |
15062 次 |
| 最近记录: |