I recommend a debugging print:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-idir','--input-dir')
args = parser.parse_args()
print(args)
this shows the actual attribute names:
1156:~/mypy$ python3 stack63329421.py
Namespace(input_dir=None)
1157:~/mypy$ python3 stack63329421.py -h
usage: stack63329421.py [-h] [-idir INPUT_DIR]
optional arguments:
-h, --help show this help message and exit
-idir INPUT_DIR, --input-dir INPUT_DIR
1157:~/mypy$ python3 stack63329421.py --input-dir foobar
Namespace(input_dir='foobar')
Now I can add a print like:
print(args.input_dir) # works with a valid attribute name
print(getattr(args, 'input_dir')) # works with anything
and get:
1158:~/mypy$ python3 stack63329421.py --input-dir foobar
Namespace(input_dir='foobar')
foobar
foobar
If you don't like the help, add a metavar
:
..., metavar='INPUT-DIR'
1158:~/mypy$ python3 stack63329421.py -h
usage: stack63329421.py [-h] [-idir INPUT-DIR]
optional arguments:
-h, --help show this help message and exit
-idir INPUT-DIR, --input-dir INPUT-DIR