argparse объединяется с необязательным параметром - PullRequest
2 голосов
/ 27 ноября 2011

Если пользователь использует необязательный параметр -o, то он также должен использовать параметр -b.Однако параметр -b следует использовать только в том случае, если пользователь установил параметр -o.

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 Ответ

2 голосов
/ 27 ноября 2011

Добавить тест после 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)
...