python 中argparse 實例解析


 一 概念:

  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有了大致的了解,詳細的使用請參考下面的文檔:

1 https://docs.python.org/3/library/argparse.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM