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")