home *** CD-ROM | disk | FTP | other *** search
- <TITLE>getopt -- Python library reference</TITLE>
- Next: <A HREF="../t/tempfile" TYPE="Next">tempfile</A>
- Prev: <A HREF="../t/time" TYPE="Prev">time</A>
- Up: <A HREF="../g/generic_operating_system_services" TYPE="Up">Generic Operating System Services</A>
- Top: <A HREF="../t/top" TYPE="Top">Top</A>
- <H1>6.3. Standard Module <CODE>getopt</CODE></H1>
- This module helps scripts to parse the command line arguments in
- <CODE>sys.argv</CODE>.
- It supports the same conventions as the UNIX
- <CODE>getopt()</CODE>
- function (including the special meanings of arguments of the form
- `<SAMP>-</SAMP>' and `<SAMP>--</SAMP>'). Long options similar to those supported by
- GNU software may be used as well via an optional third argument.
- It defines the function
- <CODE>getopt.getopt(args, options [, long_options])</CODE>
- and the exception
- <CODE>getopt.error</CODE>.
- <P>
- The first argument to
- <CODE>getopt()</CODE>
- is the argument list passed to the script with its first element
- chopped off (i.e.,
- <CODE>sys.argv[1:]</CODE>).
- The second argument is the string of option letters that the
- script wants to recognize, with options that require an argument
- followed by a colon (i.e., the same format that UNIX
- <CODE>getopt()</CODE>
- uses).
- The third option, if specified, is a list of strings with the names of
- the long options which should be supported. The leading <CODE>'--'</CODE>
- characters should not be included in the option name. Options which
- require an argument should be followed by an equal sign (<CODE>'='</CODE>).
- The return value consists of two elements: the first is a list of
- option-and-value pairs; the second is the list of program arguments
- left after the option list was stripped (this is a trailing slice of the
- first argument).
- Each option-and-value pair returned has the option as its first element,
- prefixed with a hyphen (e.g.,
- <CODE>'-x'</CODE>),
- and the option argument as its second element, or an empty string if the
- option has no argument.
- The options occur in the list in the same order in which they were
- found, thus allowing multiple occurrences. Long and short options may
- be mixed.
- <P>
- An example using only UNIX style options:
- <P>
- <UL COMPACT><CODE>>>> import getopt, string<P>
- >>> args = string.split('-a -b -cfoo -d bar a1 a2')<P>
- >>> args<P>
- ['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']<P>
- >>> optlist, args = getopt.getopt(args, 'abc:d:')<P>
- >>> optlist<P>
- [('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]<P>
- >>> args<P>
- ['a1', 'a2']<P>
- >>> <P>
- </CODE></UL>
- Using long option names is equally easy:
- <P>
- <UL COMPACT><CODE>>>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'<P>
- >>> args = string.split(s)<P>
- >>> args<P>
- ['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']<P>
- >>> optlist, args = getopt.getopt(args, 'x', [<P>
- ... 'condition=', 'output-file=', 'testing'])<P>
- >>> optlist<P>
- [('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x', '')]<P>
- >>> args<P>
- ['a1', 'a2']<P>
- >>> <P>
- </CODE></UL>
- The exception
- <CODE>getopt.error = 'getopt.error'</CODE>
- is raised when an unrecognized option is found in the argument list or
- when an option requiring an argument is given none.
- The argument to the exception is a string indicating the cause of the
- error. For long options, an argument given to an option which does
- not require one will also cause this exception to be raised.
-