如何描述python' s argparse
的以下参数语法' -l' - >丢弃所有其他选项(例如' -h')
OR
其中一个['-w','-r','-v']
强制文件
答案 0 :(得分:1)
argparse模块非常灵活,你应该看看使用组或子解析器本地实现你的目标。
但是,如果你只是想要将某些东西混在一起,那么你可以处理自己的条件:
import argparse
parser = argparse.ArgumentParser()
for arg in ["-l", "-w", "-r", "-v"]:
parser.add_argument(arg, action="store_true")
parser.add_argument("--file", nargs=1)
args = parser.parse_args("-l --file foo.txt".split())
print args
args = parser.parse_args("-l -r".split())
print args
if any((args.w, args.r, args.v)) and args.file is None:
parser.error("w r v arguments require a file")
这将打印:
Namespace(file=['foo.txt'], l=True, r=False, v=False, w=False)
Namespace(file=None, l=True, r=True, v=False, w=False)
usage: arg_parse_test.py [-h] [-l] [-w] [-r] [-v] [--file FILE]
arg_parse_test.py: error: w r v arguments require a file