一 概念:
argparse是python的一個命令行解析包。它可以使寫用戶友好的命令行接口變得非常容易。該模塊定義什么參數是需要的,並且能指出怎么解析sys.argv的參數。它也可以自動的生成幫助和使用指南。
二 使用指南:
1 基本用法:沒有參數輸入的情況。
#!/usr/bin/env python # encoding: utf-8 import argparse parser = argparse.ArgumentParser() parser.parse_args()
根據下面的輸出結果可以看出,這樣只能默認是-h的輸入,別的輸入參數就會上報錯誤。
$ python base.py $ python base.py -h usage: base.py [-h] optional arguments: -h, --help show this help message and exit $ python base.py -v usage: base.py [-h] base.py: error: unrecognized arguments: -v
2 參數輸入,直接參數可用。
#!/usr/bin/env python # encoding: utf-8 import argparse parser = argparse.ArgumentParser() parser.add_argument("audio") args = parser.parse_args() print args.audio
使用方法和結果:
$ python base.py audio
audio
3 可選參數和類型:
下面的這個參數square 的類型是限定在int類型,-v的類型使用choices限定在[0,1,2],這樣就能很方便的看出來該解析函數的使用方法。
#!/usr/bin/env python # encoding: utf-8 import argparse parser = argparse.ArgumentParser() parser.add_argument("square", type=int, help="display a square of a given number") parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2], help="increase output verbosity") args = parser.parse_args() answer = args.square**2 if args.verbosity == 2: print "the square of {} equals {}".format(args.square, answer) elif args.verbosity == 1: print "{}^2 == {}".format(args.square, answer) else: print answer ~
使用和運算結果:
$ python choices_arg.py 4 -v 2 the square of 4 equals 16 $ python choices_arg.py -v 2 usage: choices_arg.py [-h] [-v {0,1,2}] square choices_arg.py: error: too few arguments
通過這幾個例子,我們對模塊argparse有了大致的了解,詳細的使用請參考下面的文檔:
