Python 参数的 argparse 依赖

Python argparse dependence of arguments

我有两个参数:--1st 和--2nd 我正在尝试仅在设置“第一个”参数时才需要“-2nd”参数。

例如:

如果设置了“1st”和“2nd”- 好

如果未设置“1st”且未设置“2nd”- 好

其他情况不好。请帮帮我

我喜欢 Kabanus 的解决方案。这是另一个,对新用户来说更简单:

parser = argparse.ArgumentParser()
parser.add_argument('--first')
parser.add_argument('--second')
options = parser.parse_args()

# Error checking
if (options.first is None) != (options.second is None):
    print 'Error: --first and --second must both be supplied or omitted'

讨论

  • 我不使用 --1st--2nd,因为 options.1st 不起作用,并且 getattr(options, '1st') is too messy. Instead, I use--firstand--second` 用于说明目的。
  • 表达式 (options.first is None) != (options.second is None) 简洁地表达了您的错误情况。