[argparse] optional parameter without --switch

c.buhtz at posteo.jp c.buhtz at posteo.jp
Mon Nov 23 12:04:01 EST 2015


I want to call (on bash) a Python script in this two ways without any
error.

    ./arg.py
    ./arg.py TEST

It means that the parameter (here with the value `TEST`) should be
optional. With argparse I only know a way to create optional paramters
when they have a switch (like `--name`).

Is there a way to fix that?

    #!/usr/bin/env python3    
    import sys
    import argparse

    parser = argparse.ArgumentParser(description=__file__)
    
    # must have
    #parser.add_argument('name', metavar='NAME', type=str)
    
    # optional BUT with a switch I don't want
    #parser.add_argument('--name', metavar='NAME', type=str)
    
    # store all arguments in objects/variables of the local namespace
    locals().update(vars(parser.parse_args()))
    
    print(name)
    
    sys.exit()
-- 
GnuPGP-Key ID 0751A8EC



More information about the Python-list mailing list