1. 程式人生 > >Python argparse 模組

Python argparse 模組

argparse模組用於從命令列直接讀取引數,簡單用法如下:

[[email protected] ~]$ vim 1.py
#!/usr/bin/env python
import argparse
                                                                                   
parser = argparse.ArgumentParser(description="xxxxx", usage="xxxxx")               # description="xxxx" :用於描述指令碼的用途,可以為空,會在使用 python 1.py -h 檢視幫助時顯示
parser.add_argument('--verbose', '-v', action='store_true', help='verbose mode') # usage="xxxxx" :用於描述引數的用法,如果我們使用沒有自定義的引數,如 python 1.py -a 則會提示這個資訊 args = parser.parse_args() # --versose/-v :新增可用的引數,表明我們可以使用 python 1.py --verbose 或 python 1.py -v
# action="store_true" :表示當讀取的引數中出現 --verbose/-v 時,引數字典的verbose鍵對應的值為True if args.verbose: # help="verbose mode":用於描述--verbose引數的用途或意義,會在使用 python 1.py -h 檢視幫助時顯示
print "Verbose mode on!" else: print "Verbose mode off!"
[[email protected] ~]$ python 1.py       # 如果不加 -v 引數,則 args.verbose 值為 False,返回 "Verbose mode off!"
Verbose mode off!
[[email protected] ~]$ python 1.py -v    # 如果加上 -v 引數,則 args.verbose 值為 True,返回 "Verbose mode on!"
Verbose mode on!
[[email protected] ~]$ python 1.py -h    # -h 引數用於檢視幫助資訊,該引數不需要定義,預設就有的
usage: 1.py [-h] [--verbose]

your script description

optional arguments:
  -h, --help     show this help message and exit
  --verbose, -v  verbose mode
[[email protected] ~]$ python 1.py -a    # 如果我們使用沒有自定義的引數,則會提示 usage="xxxxx" 定義的內容
usage: xxxxx
1.py: error: unrecognized arguments: -a