Python學習筆記|Python之Argparse

1.基本用法

import argparse
parser = argparse.ArgumentParser()
parser.parse_args()

結果爲:

$ python prog.py --help
usage: prog.py [-h]

optional arguments:
  -h, --help  show this help message and exit

2.參數

  • argparse.ArgumentParser()

創建一個解析對象

  • argparse.ArgumentParser(description="demo")

description:描述腳本的用途

  • parser.add_argument()

增加命令行參數及選項

  • parser.parse_args()

解析參數

2.1 位置參數

  • 基本用法
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print args.echo

結果爲:

$ python prog.py --help
usage: prog.py [-h] echo

positional arguments:
  echo

optional arguments:
  -h, --help  show this help message and exit

  • 增加命令的描述
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo", help="echo the string you use here")
args = parser.parse_args()
print args.echo

結果爲:

$ python prog.py -h
usage: prog.py [-h] echo

positional arguments:
  echo        echo the string you use here

optional arguments:
  -h, --help  show this help message and exit
  • type指定參數的類型

默認的參數類型爲str,如果需要進行科學計算的話,則需要進行類型轉換,如下,args.square

parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
                    type=int)
args = parser.parse_args()
print args.square**2

結果爲:

$ python prog.py 4
16
  • 總結

位置參數是不需要加-,但是如果定義了位置參數,則參數默認必選

2.2 可選參數

  • 基本用法
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbosity", help="increase output verbosity")
args = parser.parse_args()
if args.verbosity:
    print "verbosity turned on"

結果爲:

$ python prog.py --help
usage: prog.py [-h] [--verbosity VERBOSITY]

optional arguments:
  -h, --help            show this help message and exit
  --verbosity VERBOSITY
                        increase output verbosity

以上參數在使用的使用必須指定參數的值,如下:

在這裏插入圖片描述

  • action="store_true"參數

如果action設置爲store_true,則表示若在命令中敲入了-v,則返回的是True,否則默認爲False,注意在敲入-v命令的時候,其後面不需要寫True or False,如果有-v參數則表示使能了該參數,否則無該參數,表示不使能

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity",
                    action="store_true")
args = parser.parse_args()
if args.verbose:
    print "verbosity turned on"

結果爲:

$ python prog.py -v
verbosity turned on
$ python prog.py --help
usage: prog.py [-h] [-v]

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  increase output verbosity
  • 總結

-:表示短參數,如:-h
--:表示長參數,如:--help

基於以上的兩個參數,分別需要在參數的後面指定參數的值,如果不指定參數的值,則必須增加 action="store_true"

2.3 組合參數

位置參數及可選參數組合

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
                    help="display a square of a given number")
parser.add_argument("-v", "--verbose", action="store_true",
                    help="increase output verbosity")
args = parser.parse_args()
answer = args.square**2
if args.verbose:
    print "the square of {} equals {}".format(args.square, answer)
else:
    print answer

結果爲:

$ python prog.py 4
16
$ python prog.py 4 --verbose
the square of 4 equals 16
$ python prog.py --verbose 4
the square of 4 equals 16

2.4 參數解析

  • type=int

如果type=int,則args.verbosity爲整數

parser.add_argument("-v", "--verbosity", type=int,
                    help="increase output verbosity")
args = parser.parse_args()
  • action=“store_true”

如果action=“store_true”,則args.verbosity爲True,False

  • choices=[0, 1, 2]

如果choices

parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2],
                    help="increase output verbosity")
  • action=‘count’

如果爲action=‘count’,則表示爲-v參數的個數

parser.add_argument("-v", "--verbosity", action="count",
                    help="increase output verbosity")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章