I've tried to learn how argparse.ArgumentParser
works and I've write a couple lines for that :
global firstProduct
global secondProduct
myparser=argparse.ArgumentParser(description='parser test')
myparser.add_argument("product1",help="enter product1",dest='product_1')
myparser.add_argument("product2",help="enter product2",dest='product_2')
args=myparser.parse_args()
firstProduct=args.product_1
secondProduct=args.product_2
I just want to that when User run this script with 2 parameters my code assign them to firstProduct
and secondProduct
respectively. However it doesn’t work. Is there anyone to tell me why? thanks in advance
In addition to unutbu's answer, you may also use the
metavar
attribute in order to make the destination variable and the variable name that appears in the help menus different, as shown in this link.For example if you do:
You will have the argument available for you in
args.firstProduct
but have it listed asproduct_1
in the help.Omit the
dest
parameter when using a positional argument. The name supplied for the positional argument will be the name of the argument:Running
% test.py foo bar
prints