From Python 2.3 we've the module optparse on standard library, which serve us for parse options and arguments passed to our programs, doing it easy and handy.

Here's an example:

 
from optparse import OptionParser
 
if __name__ == '__main__':
    usage = "%prog [options] arg1 arg2"
 
    parser = OptionParser(usage=usage, version="%prog 1.0")
    parser.add_option('-v','--verbose', action='store_true',
                      dest='verbose', help='shows detailed information')
    parser.add_option('-q','--quiet', action='store_false',
                      dest='verbose', help='hides detailed information')
    parser.add_option('-f','--filename', action='store',
                      dest='filename', help='name of the file to load')
 
    (options, args) = parser.parse_args()
 
    if options.verbose:
        print "Extra info enabled"
    else:
        print "Extra info disabled"
    if options.filename:
        print "I'll open", options.filename, "file."
    if args > 0:
        print "\nArguments:"
        for x in args:
            print "  ",x
 

Let's see some results depending on arguments passed:

$ python option.py

Extra info disabled
$ python option.py -v

Extra info enabled
$ python option.py -h

usage: option.py [options] arg1 arg2

options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v, --verbose         shows detailed information
  -q, --quiet           hides detailed information
  -f FILENAME, --filename=FILENAME
                        name of the file to load
$ python option.py -f fichero.txt "First" "Second" "Last argument"

Extra info disabled
I'll open fichero.txt file.

Arguments:
   First
   Second
   Last argument

Notice it knows options from arguments, as you can see in the last example.