Python常用模塊(一)--argparse模塊
argparse模塊簡(jiǎn)介
今天看到一個(gè)同事寫的腳本,腳本中用了argparse模塊。這個(gè)模塊之前我沒有使用過,所以需要系統(tǒng)的學(xué)習(xí)一下。
argparse簡(jiǎn)介:
- argparse模塊是python的一個(gè)命令行解析包,可以十分方便的對(duì)python文件進(jìn)行命令行讀寫。
- argparse模塊是python中自帶的模塊,不需要再安裝。
- 使用時(shí)先導(dǎo)入模塊,import argparse
官網(wǎng)文檔:https://docs.python.org/3/library/argparse.html
1. 簡(jiǎn)單使用
步驟:
- 創(chuàng)建 ArgumentParser() 對(duì)象
- 調(diào)用 add_argument() 方法添加參數(shù)
- 使用 parse_args() 解析添加的參數(shù)
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="請(qǐng)輸入一個(gè)數(shù)字", type=int)
parser.add_argument("input_str", help="請(qǐng)輸入一個(gè)字母", type=str)
args = parser.parse_args()
print(args.square ** 2)
print(args.input_str)
把上面的代碼保存到test_argparse.py文件,
1)命令行運(yùn)行時(shí),不添加參數(shù):在終端運(yùn)行python3 test_argparse.py ,運(yùn)行結(jié)果如下:
$python3 test_argparse.py
usage: test_argparse.py [-h] square input_str
test_argparse.py: error: the following arguments are required: square, input_str
2)命令行運(yùn)行時(shí)加上-h ,查看幫助:執(zhí)行python3 test_argparse.py -h,運(yùn)行結(jié)果如下:
$ python3 test_argparse.py -h usage: test_argparse.py [-h] square input_str positional arguments: square 請(qǐng)輸入一個(gè)數(shù)字 input_str 請(qǐng)輸入一個(gè)字母 optional arguments: -h, --help show this help message and exit
3) 命令行運(yùn)行加上參數(shù),按照提示加上一個(gè)數(shù)字,一個(gè)字母:執(zhí)行python3 test_argparse.py 10 'hello world!' , 運(yùn)行結(jié)果如下
$python3 test_argparse.py 10 'hello world!' 100 hello world!
4)如果輸入的格式不正確,會(huì)提示類型不對(duì),例如第1個(gè)參數(shù)輸入一個(gè)字符串,運(yùn)行結(jié)果如下:
$ python3 test_argparse.py 'abcd' 11 usage: test_argparse.py [-h] square input_str test_argparse.py: error: argument square: invalid int value: 'abcd'
2. 添加一個(gè)位置參數(shù)
上面的例子,其實(shí)就展示了定位參數(shù)的使用。不在舉例了
3. 為位置參數(shù)添加說明
4. 指定可選參數(shù)
現(xiàn)在看下可選參數(shù)的用法,所謂可選參數(shù),也就是命令行參數(shù)是可選的,廢話少說,看下面例子:
parser.add_argument("--square", help="display a square of a given number", type=int) parser.add_argument("--cubic", help="display a cubic of a given number", type=int)
5. 指定參數(shù)類型
之前已經(jīng)提到了用type參數(shù)就可以指定輸入的參數(shù)類型。而這個(gè)type類型還可以表示文件操作的類型從而直接進(jìn)行文件的讀寫操作。
parser.add_argument('file', type=argparser.FileType('r')) # 讀取文件 args = parser.parse_args() for line in args.file: print line.strip()
6. 為參數(shù)添加默認(rèn)值
一般情況下會(huì)設(shè)置一些默認(rèn)參數(shù)從而不需要每次輸入某些不需要變動(dòng)的參數(shù),利用default參數(shù)即可實(shí)現(xiàn)。
parser.add_argument('filename', default='text.txt')
浙公網(wǎng)安備 33010602011771號(hào)