Thursday, September 3, 2015

Python: Option parser

在其他程式有時會看到"-i inputfile -o outputfile"等等的參數控制,在python其實也很容易做出來的!要使用的就是optparse這個包。

簡單的官方例子︰
[root@mkytap root]# vi myProgram.py
from optparse import OptionParser
[...]
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()
filename = options.filename
verbose = options.verbose

[...]

在運行時如果執行這些命令(每一行都是一樣效果)︰
[root@mkytap root]# myProgram.py --file=outfile -q
[root@mkytap root]# myProgram.py -f outfile --quiet
[root@mkytap root]# myProgram.py --quiet --file outfile
[root@mkytap root]# myProgram.py -q -f outfile
[root@mkytap root]# myProgram.py -qf outfile
程式會把outfile這個文件放到filename這個變量中,而verbose會被設定為false(預設是true)。

另外,如果執行以下命令則可以顯示使用說明(每一行都是一樣效果),格式還很好看呢~~
[root@mkytap root]# myProgram.py -h
Usage: myProgram.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
[root@mkytap root]# myProgram.py --help
Usage: myProgram.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

詳細的官方說明(英文)可參考: 15.5. optparse — Parser for command line options
中文的使用說明可參考: Python模块学习——optparse <=這個非常非常詳細~~想知道更多看這個吧!

No comments: