Very Nice! Thanks for sharing.
Command Line Arguments in Python - A Tutorial
Hello World, this is my first post! I wrote this because I recently wrote my first python application that requires command line arguments and discovered how easy it is to work with arguments in Python. Command line programs are very handy when your program is designed for one purpose and an entire GUI to select options is unnecessary.
Before we begin, we should cover the difference between arguments and options. Options are optional (duh). They are what you supply that begin with - or -- in a command line application. Arguments are required information that do not begin with - or --. Options can sometimes require arguments supplied with them, such as an output destination. Arguments are always supplied after all options, but options can be supplied in any order. This tutorial will cover both options and arguments.
Only one import statement is necessary:
The first thing we would like to do is set a usage string. This will be displayed when the user supplies -h or --help as an option. We then create a parser object with this usage string.Code:#!/usr/bin/env python from optparse import OptionParser
%prog will print out the name of the file being run. A usage string is not required and will default to:Code:use = "Usage: %prog [options] argument1 argument2" parser = OptionParser(usage = use)
Our next step is to add options to the parser.Usage: tut.py [options]
The first two arguments of add_option give the short and longhand calls for the option. 'dest=STRING' stores a variable with the name of the given string. 'metavar' gives the name of the expected argument to be received with the option. 'metavar' should be used when you do not want to store a variable as a boolean. Parser will print an error and exit if the expected argument is not given. Finally, 'help' stores the string that will be printed given the argument --help.Code:parser.add_option("-v", "--verbose", dest="verbose", action="store_true", default=False, help="Set mode to verbose.") parser.add_option("-f", "--filename", dest="write" metavar="FILE", help="write output to FILE"),
If the option -h is supplied with our program, the output would be:
Usage: tut.py [options] argument1 argument2
Options:
-h, --help show this help message and exit
-v, --verbose Set mode to verbose.
-f FILE, --filename=FILE write output to FILE
The final step is to parse the options and arguments into variables we can use later.
After this statement, 'options' will contain the variables we set to store when we added options to parser. 'args' will contain the arguments listed after all options.Code:options, args = parser.parse_args()
After all options and arguments have been parsed, it would make sense to be able to access the information. Options are accessed through parser.<variable name> and arguments are accessed through an index in the array, 'args'.
Given the input:Code:if options.verbose: print "Mode is set to verbose!" print options.write print args[0] print args[1]
The output would be:Code:./test.py -v -f my_file ARG1 ARG1
Mode is set to verbose!
my_file
ARG1
ARG2
I hope this helps in writing your command line based programs in Python. I'd be glad to write about more advanced optparse applications if anyone finds this helpful!
Very Nice! Thanks for sharing.
I'm glad you liked the tutorial. Command line arguments can be a very powerful part of a program.
Very nice tutorial! +rep
There are currently 1 users browsing this thread. (0 members and 1 guests)