【发布时间】:2020-08-15 04:42:31
【问题描述】:
我有一个名为 script.py 的 python 脚本,它有两个可选参数(-a,-b),并且有一个位置参数,可以接受文件或使用标准输入。我想让它不能多次使用标志/文件。因此,不应该允许这样的事情
./script.py -a 5 -a 7 test.txt
./script.py -a 5 test1.txt test2.txt
有什么办法可以做到这一点吗?我一直在梳理 argparse (https://docs.python.org/3/library/argparse.html),但似乎找不到任何能满足我需求的东西。我想也许我可以在 add_argument(..) 函数中使用 nargs=1 并可能检查生成的列表的长度。任何帮助将不胜感激。
【问题讨论】:
-
只有一个位置,第二种情况是不允许的。第一个是允许的,但
args.a将是7。为什么用户会重复-a?使用最后一个而忽略第一个有什么问题?