2

如果用户使用可选参数 -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()

如何解决这个问题?

4

1 回答 1

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)
于 2011-11-27T05:48:52.853 回答