The argparse python module provides an easy declarative interface for
creating command line tools.  Argparse knows how to parse the arguments
and flags from sys.argv, convert arg strings into objects for your program,
format and print informative help messages, and much more...

The argparse module improves on the standard library optparse module in
a number of ways including handling positional arguments, support for
sub-commands, allowing alternative option prefixes like + and /,
handling zero-or-more and one-or-more style arguments, producing more
informative usage messages, and providing a much simpler interface for
custom types and actions.
