Python argparse;если аргумент 1 отсутствует, как продолжить и установить необходимые следующие аргументы - PullRequest
0 голосов
/ 23 октября 2018

У меня есть 3 аргумента в моем скрипте Python.Два требуются для запуска скрипта, а аргумент 1 показывает только список опций.Я хочу, чтобы, если установлен аргумент 1, то аргументы 2 и 3 больше не требуются, а если аргумент 1 не используется, то эти аргументы 2 и 3 являются обязательными.

Аргументы таковы:

parser = argparse.ArgumentParser()
parser.add_argument("--1", help="list of options", action="store_true", default=False)
parser.add_argument("--2", help="level", required=True)
parser.add_argument("--3", help="folder", required=True)
args = parser.parse_args()

Я попытался сделать это с помощью следующей команды:

parser = argparse.ArgumentParser()
parser.add_argument("--1", help="list of options", action="store_true", default=False)
parser.add_argument("--2", help="level)
parser.add_argument("--3", help="folder")
args = parser.parse_args()

if args.1:
    print('list of options')
    sys.exit()
if not args.1:
    parser = argparse.ArgumentParser()
    parser.add_argument("--1", help="list of options", action="store_true", default=False)
    parser.add_argument("--2", help="level", required=True)
    parser.add_argument("--3", help="folder", required=True)

Но проблема в том, что если пользователь только установил параметр2 (или только вариант 3), сценарий продолжается, вместо обязательных параметров 2 и 3.Возможно ли в Python сначала проверить вариант 1 и, если этот параметр не задан, продолжить тестировать вариант 2 и 3 и установить эти два как требуется?

...