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

问题描述

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

例如:

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

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

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

解决方法

首先,您可能想要查看argparse。入门需要更多的人工阅读,但是它可以做的更多!

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

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

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...