2011-11-27 108 views
2

如果用戶使用可選參數-o,那麼用戶也必須使用參數-b。 但是,僅當用戶設置參數-o時,必須使用-b參數。argparse結合可選參數

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() 

怎麼可能解決這一問題?

回答

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)