在此示例脚本中

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--modes', help="test", nargs='+', type=str)

args = parser.parse_args()
write_mode = args.modes
print(write_mode)


只有一个参数modes

但是,python test.py --modes sdfsfpython test.py --mode sdfsf给我相同的输出(['sdfsf']),这意味着parsermode视为modes

这是argparse的错误吗?

最佳答案

这是prefix matching的示例,默认情况下argparse允许使用它。

使用argparse.ArgumentParser(..., allow_abbrev=False)将其关闭。

关于python - Python argparse.ArgumentParser无法区分--modes和--mode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58478936/

10-12 20:25