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 "-"
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.