python using argparse.ArgumentParser method

argparse, command-line, python

Solution

Omit the `dest` parameter when using a positional argument. The name supplied for the positional argument will be the name of the argument:

import argparse
myparser = argparse.ArgumentParser(description='parser test')
myparser.add_argument("product_1", help="enter product1")
myparser.add_argument("product_2", help="enter product2")

args = myparser.parse_args()
firstProduct = args.product_1
secondProduct = args.product_2
print(firstProduct, secondProduct)

Running `% test.py foo bar` prints

('foo', 'bar')

Problem

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

Original source