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 bvalue
或 script.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:]
.
如何使用 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 bvalue
或 script.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:]
.