【发布时间】:2021-12-30 04:02:51
【问题描述】:
我正在为我的脚本编写一个参数解析器:
import argparse
parser = argparse.ArgumentParser(description='My parser.')
parser.add_argument('path',
type=str)
parser.add_argument('-a',
'--all',
action='store_true')
parser.add_argument('-t',
'--type',
type=str)
parser.add_argument('-d',
'--date',
type=str)
这是我要实现的逻辑:
-
path: 必须始终提供。 -
--all:如果提供了,--type和--date不应该出现。 -
--type和--date:只有在未引入--all标志时才必须提供。
命令看起来像这样:
python myscript.py mypath [-a] OR [-t mytype -d mydate]
我该如何实现这个逻辑?
【问题讨论】:
-
您是在谈论仅在写入 --all 时才使用 --all 的逻辑还是正确打印使用消息? docs.python.org/3/library/argparse.html#usage
-
关于如何实现使用
--allOR--type mytype --date mydate@mama 之一的逻辑 -
argparse提供了一个xor,但它是平的 - 没有任何/所有的组。