I wrote a python program which uses argparse to parse its argument. One of the argument -a is string type and I would like to pass an argument with double dash "--" to it.
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Trigger `bazel`',
formatter_class=argparse.RawTextHelpFormatter,
)
parser.add_argument(
'-a',
dest='a',
type=str,
help='Extra arguments for `bazel` command '
'default to empty',
required=False,
default='',
)
args = parser.parse_args()
print(args.a)
E.g. I would like to trigger the command
python3 myprog.py -a --action_env=REPO_ROOT=$PWD
however, it complains error: argument -a: expected one argument
I know it is because -- means special in shell that marks end of options. So I also tried
python3 myprog.py -a "--action_env=REPO_ROOT=$PWD"
same error, I am wondering how I can make my python script receive a string to the -a argument "--action_env=REPO_ROOT=/user/pli"