我想拥有命令行参数选项,其中用户可以/不能为标志提供参数。也可以在没有参数的情况下唤起这个标志。
举个例子。
opts, args = getopt.getopt(argv, "hd:vp:",["help","duration=","verbose","plot="])
但是在optargs中,如果我们在没有任何参数的情况下编写-p
,它会给我错误。我想这样我可以在命令行中使用-p
和-p arg
答案 0 :(得分:2)
您应该考虑切换到argparse,这会为您提供比命令行参数更强大的功能。您getopt
电话的等效配置如下:
parser = argparse.ArgumentParser()
parser.add_argument('--duration', '-d')
parser.add_argument('--verbose', '-v', action='store_true')
parser.add_argument('--plot', '-p', nargs='?', default=None)
args = parser.parse_args()
print(args)
这已经包含完整的帮助文本,verbose
是一个标志,将长和短选项映射到同一个字段,以及指定plot
或回退到默认值的功能。