Skip to content Skip to sidebar Skip to footer

How Do I Tell Argparse To Allow An Argument Only Once?

How do I tell argparse that I want to allow a command line argument only once? import sys import argparse parser = argparse.ArgumentParser() parser.add_argument( '--out',

Solution 1:

Following up on my comment:

import sys
import argparse

# args = sys.argv[1:]

args = "--out 1 --out 2 --out 3".split()

print(f"Input args: {args}")


parser = argparse.ArgumentParser()
parser.add_argument(
    "--out",
    action="append",
    required=True,
)

parsed = vars(parser.parse_args(args))

for key, val in parsed.items():
    if isinstance(val, list):
        print(f"{key} specified {len(val)} times!")
        parsed[key] = val[0]  # or val[-1]

print(parsed)

Post a Comment for "How Do I Tell Argparse To Allow An Argument Only Once?"