argparse与可选参数结合使用

时间:2011-11-27 05:19:10

标签: python argparse

如果用户使用可选参数-o,则用户也必须使用参数-b。 但是,只有在用户设置参数-o。

时才必须使用-b参数
import argparse

if __name__ == '__main__':

    parser = argparse.ArgumentParser()
    parser.add_argument('-f', nargs='?', required=True)
    parser.add_argument('-o', nargs='?', required=False)
    parser.add_argument('-b', nargs='?', required=????)

    args = parser.parse_args()

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

args = parser.parse_args()之后添加测试:

if args.o and not args.b:
   print >> sys.stderr, 'The -b option is required whenever -o is specified'
   sys.exit(1)