deepwalk原始碼解讀1: argparse
阿新 • • 發佈:2018-12-09
argparse 是 Python 內建的一個用於命令項選項與引數解析的模組,通過在程式中定義好我們需要的引數,argparse 將會從 sys.argv 中解析出這些引數,並自動生成幫助和使用資訊。最常用的有:
- ArgumentParser()
- add_argument()
- parse_args()
這裡的引數包括兩種,一種是定位引數”positional arguments”,又叫做必須 引數,一種是可選引數”optional arguments”。
1. 新增定位引數
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('your_positional_arguments', type=int, help='display an integer')
args = parser.parse_args()
print(args.your_positional_arguments)
在命令列中執行:
python ForArgumentParser.py
會給出這樣的結果:
usage: ForArgumentParser.py [-h] your_positional_arguments
ForArgumentParser.py : error: the following arguments are required: your_positional_arguments
這句話告訴我們:在我們建立的parser中有一個預置的可選引數”-h”,即help,還有一個是必選引數”your_positional_arguments”,這個是我們自己新增的必選引數。
在命令列中執行
python ForArgumentParser.py -h
會給出這樣的結果:
usage: ForArgumentParser.py [-h] your_positional_arguments
positional arguments:
your_positional_arguments
display an integer
optional arguments:
-h, --help show this help message and exit
它更加詳細的解釋了各個引數的情況,特別的,我們看到”your_positional_arguments”這個引數對應的解釋”display an integer”就是我們我們在程式碼中新增的句子。
在命令列中執行
python ForArgumentParser.py 32
會給出這樣的結果:
32
這表明程式正確的解析了我們的命令,打印出了32。如果我們輸入的不是數字而是字元呢?如
python ForArgumentParser.py adb
會給出這樣的結果:
usage: ForArgumentParser.py [-h] your_positional_arguments
ForArgumentParser.py: error: argument your_positional_arguments: invalid int value: 'abc'
程式會對我們的輸入做檢查,這中檢查是根據我們之前的語句
parser.add_argument('your_positional_arguments', type=int, help='display an integer')
進行的。