Python getopt - 如何检查参数的不同可能组合?

Python getopt - How do I check for different possible combinations of arguments?

如何使用 getopt 以便我可以检查每个可能顺序中 2 个参数的每个有效组合?

例如:

try:
opts, args = getopt.getopt(argv,"a:b")
except getopt.GetoptError:
  try:
    opts, args = getopt.getopt(argv,"a:c")
  except:
    sys.exit(1)

输入可以是 script.py -a avalue -b bvaluescript.py -a avalue -c cvalue。 a和other参数的位置也可以颠倒

但我只在执行脚本时得到令人困惑的值

首先,您可能想看看 argparse。开始需要更多的手动阅读,但它可以做更多!

对于 getopt,开关始终是可选的,并且始终可以以任何顺序出现。也就是说,如果你这样做

opts, args = getopt.getopt(argv, "a:b:c:")

用户可以按任意顺序给出 -a avalue-b bvalue-c cvalue,并且可以省略其中任何一个或全部。

此外,请注意 getopt 并不期望在参数列表中找到程序名称,这意味着您通常希望传递 argv[1:].