mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	* \bcode, \ecode added everywhere
	* \label{module-foo} added everywhere
	* A few \seealso sections added.
	* Indentation fixed inside verbatim in lib*tex files
		
	
			
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\section{Standard Module \sectcode{getopt}}
 | 
						|
\label{module-getopt}
 | 
						|
 | 
						|
\stmodindex{getopt}
 | 
						|
This module helps scripts to parse the command line arguments in
 | 
						|
\code{sys.argv}.
 | 
						|
It supports the same conventions as the \UNIX{}
 | 
						|
\code{getopt()}
 | 
						|
function (including the special meanings of arguments of the form
 | 
						|
`\code{-}' and `\code{-}\code{-}').
 | 
						|
% That's to fool latex2html into leaving the two hyphens alone!
 | 
						|
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])}
 | 
						|
and the exception
 | 
						|
\code{getopt.error}.
 | 
						|
 | 
						|
The first argument to
 | 
						|
\code{getopt()}
 | 
						|
is the argument list passed to the script with its first element
 | 
						|
chopped off (i.e.,
 | 
						|
\code{sys.argv[1:]}).
 | 
						|
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()}
 | 
						|
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{'='}).
 | 
						|
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'}),
 | 
						|
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.
 | 
						|
 | 
						|
An example using only \UNIX{} style options:
 | 
						|
 | 
						|
\bcode\begin{verbatim}
 | 
						|
>>> import getopt, string
 | 
						|
>>> args = string.split('-a -b -cfoo -d bar a1 a2')
 | 
						|
>>> args
 | 
						|
['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']
 | 
						|
>>> optlist, args = getopt.getopt(args, 'abc:d:')
 | 
						|
>>> optlist
 | 
						|
[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
 | 
						|
>>> args
 | 
						|
['a1', 'a2']
 | 
						|
>>> 
 | 
						|
\end{verbatim}\ecode
 | 
						|
%
 | 
						|
Using long option names is equally easy:
 | 
						|
 | 
						|
\bcode\begin{verbatim}
 | 
						|
>>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'
 | 
						|
>>> args = string.split(s)
 | 
						|
>>> args
 | 
						|
['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']
 | 
						|
>>> optlist, args = getopt.getopt(args, 'x', [
 | 
						|
...     'condition=', 'output-file=', 'testing'])
 | 
						|
>>> optlist
 | 
						|
[('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x', '')]
 | 
						|
>>> args
 | 
						|
['a1', 'a2']
 | 
						|
>>> 
 | 
						|
\end{verbatim}\ecode
 | 
						|
%
 | 
						|
The exception
 | 
						|
\code{getopt.error = 'getopt.error'}
 | 
						|
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.
 |