summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libgetopt.tex
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2000-08-11 19:55:06 (GMT)
committerFred Drake <fdrake@acm.org>2000-08-11 19:55:06 (GMT)
commita8e484c8f54dc9b2cf8dd8a82f051ee891d4fdd4 (patch)
tree665c2c647bbd055c00926260df9e397936e90781 /Doc/lib/libgetopt.tex
parentf29f47b38beae54db959d0dd2f0800d5dd3fc174 (diff)
downloadcpython-a8e484c8f54dc9b2cf8dd8a82f051ee891d4fdd4.zip
cpython-a8e484c8f54dc9b2cf8dd8a82f051ee891d4fdd4.tar.gz
cpython-a8e484c8f54dc9b2cf8dd8a82f051ee891d4fdd4.tar.bz2
getopt(): revise description of long_options parameter slightly so it will
be less confusing; add a paragraph separation so that comments about the options and long_options parameters don't have references that are easily misinterpreted. Adjust the interactive examples to not need the string module. Add an example showing how the module is commonly used in a script.
Diffstat (limited to 'Doc/lib/libgetopt.tex')
-rw-r--r--Doc/lib/libgetopt.tex62
1 files changed, 43 insertions, 19 deletions
diff --git a/Doc/lib/libgetopt.tex b/Doc/lib/libgetopt.tex
index 56a8b3c..4f32225 100644
--- a/Doc/lib/libgetopt.tex
+++ b/Doc/lib/libgetopt.tex
@@ -21,25 +21,26 @@ argument list to be parsed, without the leading reference to the
running program. Typically, this means \samp{sys.argv[1:]}.
\var{options} 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{} \cfunction{getopt()} uses). If
-specified, \var{long_options} is a list of strings with the names of
-the long options which should be supported. The leading
+(\character{:}; i.e., the same format that \UNIX{}
+\cfunction{getopt()} uses).
+
+\var{long_options}, if specified, must be 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{'='}).
+name. Long options which require an argument should be followed by an
+equal sign (\character{=}).
The return value consists of two elements: the first is a list of
\code{(\var{option}, \var{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 for short options (e.g., \code{'-x'})
-or two hyphens for long options (e.g., \code{'-}\code{-long-option'}),
-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.
+trailing slice of \var{args}). Each option-and-value pair returned
+has the option as its first element, prefixed with a hyphen for short
+options (e.g., \code{'-x'}) or two hyphens for long options (e.g.,
+\code{'-}\code{-long-option'}), 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.
\end{funcdesc}
\begin{excdesc}{GetoptError}
@@ -61,8 +62,8 @@ Alias for \exception{GetoptError}; for backward compatibility.
An example using only \UNIX{} style options:
\begin{verbatim}
->>> import getopt, string
->>> args = string.split('-a -b -cfoo -d bar a1 a2')
+>>> import getopt
+>>> args = '-a -b -cfoo -d bar a1 a2'.split()
>>> args
['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']
>>> optlist, args = getopt.getopt(args, 'abc:d:')
@@ -70,14 +71,13 @@ An example using only \UNIX{} style options:
[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
>>> args
['a1', 'a2']
->>>
\end{verbatim}
Using long option names is equally easy:
\begin{verbatim}
>>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'
->>> args = string.split(s)
+>>> args = s.split()
>>> args
['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']
>>> optlist, args = getopt.getopt(args, 'x', [
@@ -87,5 +87,29 @@ Using long option names is equally easy:
'')]
>>> args
['a1', 'a2']
->>>
+\end{verbatim}
+
+In a script, typical usage is something like this:
+
+\begin{verbatim}
+import getopt, sys
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])
+ except getopt.GetoptError:
+ # print help information and exit:
+ usage()
+ sys.exit(2)
+ output = None
+ for o, a in opts:
+ if o in ("-h", "--help"):
+ usage()
+ sys.exit()
+ if o in ("-o", "--output"):
+ output = a
+ # ...
+
+if __name__ == "__main__":
+ main()
\end{verbatim}