execl() or execv(). In Python, arguments are elements of
sys.argv[1:] (sys.argv[0] is the name of the program being
executed). Unix shells also use the term ``word''.
It is occasionally desirable to substitute an argument list other
than sys.argv[1:], so you should read ``argument'' as ``an element of
sys.argv[1:], or of some other list provided as a substitute for
sys.argv[1:]''.
"-x" or "-F". Also, traditional Unix
syntax allows multiple options to be merged into a single argument,
e.g. "-x -F" is equivalent to "-xF". The GNU project
introduced a double hyphen followed by a series of hyphen-separated words,
e.g. --file or --dry-run. These are the only two option
syntaxes provided by optparse.
Some other option syntaxes that the world has seen include:
"-pf" (this is
not the same as multiple options merged into a single argument)
"-file" (this is
technically equivalent to the previous syntax, but they aren't
usually seen in the same program)
"+f", "+rgb"
"/f", "/file"
These option syntaxes are not supported by optparse, and they never will be. This is deliberate: the first three are non-standard on any environment, and the last only makes sense if you're exclusively targeting VMS, MS-DOS, and/or Windows.
-f foo --file foo
or included in the same argument:
-ffoo --file=foo
Typically, a given option either takes an argument or it doesn't.
Lots of people want an ``optional option arguments'' feature, meaning
that some options will take an argument if they see it, and won't if
they don't. This is somewhat controversial, because it makes parsing
ambiguous: if "-a" takes an optional argument and "-b" is
another option entirely, how do we interpret "-ab"? Because of
this ambiguity, optparse does not support this feature.
examples/required_1.py and
examples/required_2.py in the optparse source distribution for two
ways to implement required options with optparse.
For example, consider this hypothetical command-line:
prog -v --report /tmp/report.txt foo bar
-v and --report are both options. Assuming that
--report takes one argument, "/tmp/report.txt" is an option
argument. "foo" and "bar" are positional arguments.
See About this document... for information on suggesting changes.