http://www.bubuko.com/infodetail-706714.html
15.5 optparse 模块—— 命令行选项的解析器
| 代码 |
from
optparse
import
OptionParser
def
main():
parser = OptionParser()
parser.add_option(
"-f"
,
"--file"
, dest=
"filename"
,help=
"write report to FILE"
, metavar=
"FILE"
)
parser.add_option(
"-q"
,
"--quiet"
,action=
"store_false"
, dest=
"verbose"
, default=
True
,help=
"don‘t print status messages to stdout"
)
(options, args) = parser.parse_args()
if
__name__ ==
‘__main__‘
:
main()
|
| 结果: | ----examp1.py -h
Usage: exam1.py [options]
Options:
-h, --help show this help message and exit
-f FILE, --file=FILE write report to FILE
-q, --quiet don‘t print status messages to stdout
|
| 代码 |
#增加两行代码
print
options.filename
print
options.verbose
|
| 结果 |
----examp1.py -f outfile -q
outfile
False
|
| -f foo --file foo |
| -ffoo --file=foo |
| prog -v --report /tmp/report.txt foo bar |
cp SOURCE DEST cp SOURCE ... DEST-DIR |
|
from
optparse
import
OptionParser
parser = OptionParser()
|
parser.add_option(opt_str, ...,
attr=value, ...)
|
parser.add_option("-f", "--file", ...)
|
|
(options, args) = parser.parse_args()
|
|
parser.add_option(
"-f"
,
"--file"
,
action=
"store"
, type=
"string"
, dest=
"filename"
)
|
args = ["-f", "foo.txt"] (options, args) = parser.parse_args(args) |
parser.add_option("-n", type="int", dest="num")
|
(options, args) = parser.parse_args(["-n42"]) print options.num |
parser.add_option("-f", "--file", dest="filename")
|
parser.add_option("-v", action="store_true", dest="verbose")
parser.add_option("-q", action="store_false", dest="verbose")
|
parser.add_option("-v", action="store_true", dest="verbose", default=True)
parser.add_option("-q", action="store_false", dest="verbose")
|
parser.add_option("-v", action="store_true", dest="verbose")
parser.add_option("-q", action="store_false", dest="verbose", default=True)
|
|
parser.add_option(
"-v"
, action=
"store_true"
, dest=
"verbose"
,default=
True
)
parser.add_option(
"-q"
,
"--quiet"
,action=
"store_false"
, dest=
"verbose"
,default=
False
)
|
parser.set_defaults(verbose=True) parser.add_option(...) (options, args) = parser.parse_args() |
|
from
optparse
import
OptionParser
usage =
"usage: %prog [options] arg1 arg2"
parser = OptionParser(usage=usage)
parser.add_option(
"-v"
,
"--verbose"
,
action=
"store_true"
, dest=
"verbose"
, default=
True
,
help=
"make lots of noise [default]"
)
parser.add_option(
"-q"
,
"--quiet"
,
action=
"store_false"
, dest=
"verbose"
,
help=
"be vewwy quiet (I‘m hunting wabbits )"
)
parser.add_option(
"-f"
,
"--filename"
,
metavar=
"FILE"
, help=
"write output to FILE"
)
parser.add_option(
"-m"
,
"--mode"
,
default=
"intermediate"
,
help=
"interaction mode: novice, intermediate, "
"or expert [default: %default]"
)
(options, args) = parser.parse_args()
|
|
Usage: exam2.py [options] arg1 arg2
Options:
-h, --help show this help message and exit
-v, --verbose make lots of noise [default]
-q, --quiet be vewwy quiet (I‘m hunting wabbits)
-f FILE, --filename=FILE
write output to FILE
-m MODE, --mode=MODE interaction mode: novice, intermediate, or expert
[default: intermediate]
|
|
usage =
"usage: %prog [options] arg1 arg2"
|
|
-m MODE, --mode=MODE
|
|
|
group = OptionGroup(parser,
"Dangerous Options"
,
"Caution: use these options at your own risk. "
"It is believed that some of them bite."
)
group.add_option(
"-g"
, action=
"store_true"
, help=
"Group option."
)
parser.add_option_group (group)
|
|
Usage: exam3.py [options] arg1 arg2
Options:
-h, --help show this help message and exit
-v, --verbose make lots of noise [default]
-q, --quiet be vewwy quiet (I‘m hunting wabbits)
-f FILE, --filename=FILE
write output to FILE
-m MODE, --mode=MODE interaction mode: novice, intermediate, or expert
[default: intermediate]
Dangerous Options:
Caution: use these options at your own risk. It is believed that some
of them bite.
-g Group option.
|
|
group = OptionGroup(parser,
"Dangerous Options"
,
"Caution: use these options at your own risk. "
"It is believed that some of them bite."
)
group.add_option(
"-g"
, action=
"store_true"
, help=
"Group option."
)
parser.add_option_group(group )
group = OptionGroup(parser,
"Debug Options"
)
group.add_option(
"-d"
,
"--debug"
, action=
"store_true"
,
help=
"Print debug information"
)
group.add_option(
"-s"
,
"-- sql"
, action=
"store_true"
,
help=
"Print all SQL statements executed"
)
group.add_option(
"-e"
, action=
"store_true"
, help=
"Print every action done"
)
parser.add_option_group(group )
|
|
Usage: exam3.py [options] arg1 arg2
Options:
-h, --help show this help message and exit
-v, --verbose make lots of noise [default]
-q, --quiet be vewwy quiet (I‘m hunting wabbits)
-f FILE, --filename=FILE
write output to FILE
-m MODE, --mode=MODE interaction mode: novice, intermediate, or expert
[default: intermediate]
Dangerous Options:
Caution: use these options at your own risk. It is believed that some
of them bite.
-g Group option.
Debug Options:
-d, --debug Print debug information
-s, --sql Print all SQL statements executed
-e Print every action done
|
|
parser = OptionParser(usage="%prog [-f] [-q]", version="%prog 1.0") |
$ /usr/bin/foo --version foo 1.0 |
(options, args) = parser.parse_args()[...]if options.a and options.b:
parser.error("options -a and -b are mutually exclusive")
|
$ /usr/bin/foo -n 4x Usage: foo [options] foo: error: option -n: invalid integer value: ‘4x‘ |
$ /usr/bin/foo -n Usage: foo [options] foo: error: -n option requires an argument |
|
Created on 2015年1月28日
@author: pan
‘‘‘
from
optparse
import
OptionParser
from
optparse
import
OptionGroup
usage =
"usage: %prog [
options
] arg1 arg2"
parser = OptionParser(usage=usage)
parser.add_option(
"-v"
,
"--verbose"
,
action=
"store_true"
, dest=
"verbose"
, default=
True
,
help=
"make lots of noise [default]"
)
parser.add_option(
"-q"
,
"--quiet"
,
action=
"store_false"
, dest=
"verbose"
,
help=
"be vewwy quiet (I‘m hunting wabbits )"
)
parser.add_option(
"-f"
,
"--filename"
,
metavar=
"FILE"
, help=
"write output to FILE"
)
parser.add_option(
"-m"
,
"--mode"
,
default=
"intermediate"
,
help=
"interaction mode: novice, intermediate, "
"or expert [default: %default]"
)
group = OptionGroup(parser,
"Dangerous Options"
,
"Caution: use these options at your own risk. "
"It is believed that some of them bite."
)
group.add_option(
"-g"
, action=
"store_true"
, help=
"Group option."
)
parser.add_option_group(group)
group = OptionGroup(parser,
"Debug Options"
)
group.add_option(
"-d"
,
"--debug"
, action=
"store_true"
,
help=
"Print debug information"
)
group.add_option(
"-s"
,
"--sql"
, action=
"store_true"
,
help=
"Print all SQL statements executed"
)
group.add_option(
"-e"
, action=
"store_true"
, help=
"Print every action done"
)
parser.add_option_group(group)
(options, args) = parser.parse_args()
|
option_list = [
make_option("-f", "--filename",
action="store", type="string", dest="filename"),
make_option("-q", "--quiet",
action="store_false", dest="verbose"),
]parser = OptionParser(option_list=option_list)
|
|
|
| parser.parser_args() |
| options = Values() |
parser.add_option("-f", "--file", action="store", type="string", dest="filename")
|
| -f foo -f foo --file=foo --file foo |
| options.filename = "foo" |
|
| -f foo.txt -p 1 -3.5 4 -fbar.tx |
| option.f = "foo.txt" option.point = (1.0 ,-3.5 ,4.0) option.f = "bar.txt" |
|
parser.add_option(
"-q"
,
"--quiet"
,
action=
"store_const"
, const=
0
, dest=
"verbose"
)
parser.add_option(
"-v"
,
"--verbose"
,
action=
"store_const"
, const=
1
, dest=
"verbose"
)
parser.add_option(
"--noisy"
,
action=
"store_const"
, const=
2
, dest=
"verbose"
|
| option.verbose = 2 |
|
parser.add_option(
"--clobber"
, action=
"store_true"
, dest=
"clobber"
)
parser.add_option(
"--no-clobber"
, action=
"store_false"
, dest=
"clobber"
)
|
|
parser.add_option(
"-t"
,
"--tracks"
, action=
"append"
, type=
"int "
)
|
| options.tracks = [] options.tracks.append(int("3")) |
| options.tracks.append(int("3")) |
|
parser.add_option(
"-v"
, action=
"count"
, dest=
"verbosity"
)
|
| options.verbosity = 0 options.verbosity += 1 |
| options.verbosity += 1 |
|
|
from
optparse
import
OptionParser, SUPPRESS_HELP
# usually, a help option is added automatically, but that can
# be suppressed using the add_help_option argument
parser = OptionParser(add_help_option=
False
)
parser.add_option(
"-h"
,
"--help"
, action=
"help"
)
parser.add_option(
"-v"
, action=
"store_true"
, dest=
"verbose"
,
help=
"Be moderately verbose"
)
parser.add_option(
"--file"
, dest=
"filename"
,
help=
"Input file to read data from"
)
parser.add_option(
"--secret"
, help=SUPPRESS_HELP)
|
|
Usage: exam4.py [options]
Options:
-h, --help
-v Be moderately verbose
--file=FILENAME Input file to read data from
|
| (options, args) = parser.parse_args(args=None,values=None) |
| prog -a arg1 -b arg2 |
| prog -a -b arg1 arg2 |