argparse是python的乙個命令列引數模組,可以解析命令列引數,生成幫助等。
你可以這樣使用它:
python**
#!/usr/bin/python
from argparse import argumentparser
p = argumentparser(usage='it is usage tip', description='this is a test')
p.add_argument('--one', default=1, type=int, help='the first argument')
p.add_argument('--two, default=2, type=int, help='the second argument')
p.add_argument('--docs-dir, default="./", help='document directory')
args = p.parse_args()
#可以列印出來檢視
print args
#列印某乙個引數
print args.one
print args.docs_dir #經過parse_args()函式後引數名稱去掉了前面的"--",所有的"-"轉換為"_"
這個檔案的名稱叫做test.py , 你可以這樣執行它:
./test.py
想要檢視是否有哪些引數可以:
./test.py --help 或者 ./test.py -h
會列印出以下資訊:
命令列**
usage: it is usage tip
this is a test
optional arguments:
-h, --help show this help message and exit
--one one the first argument
--two two the second argument
--docs-dir docs_dir document directory
然後就可以帶引數執行程式:
./test.py --one 10 --two 20 --docs-dir /opt/docs/
但是在這種情況下:「如果執行程式時帶了乙個不認識的引數」,就會報錯:
./test.py --p 235
命令列**
usage: it is usage tip
test.py: error: unrecognized arguments: ./test.py --p 235
有時我們不希望這樣,我們的需求是:只提取有用的引數,不認識的引數丟棄但並不需要報錯".
這時程式可以這樣寫:
python**
#!/usr/bin/python
import sys
from argparse import argumentparser
p = argumentparser(usage='it is usage tip', description='this is a test')
p.add_argument('--one', default=1, type=int, help='the first argument')
p.add_argument('--two, default=2, type=int, help='the second argument')
p.add_argument('--docs-dir, default="./", help='document directory')
# 這個函式將認識的和不認識的引數分開放進2個變數中
args, remaining = p.parse_known_args(sys.argv)
#可以列印出來檢視
print args
print remaining
再次執行程式:
./test.py --p 235
這個時候就會列印出:
命令列**
namespace(docs_dir='./', one=1, two=2)
['./test.py', '--p', '235']
argparse 命令引數模組簡介
argparse模組在pyhon3.2中新增到標準庫中 argparse模組可以讓我們更方便的開發命令列引數輸入。該模組定義了需要什麼引數,並且自動從sys.ar 中解析引數 該模組還會自動生成help,usage資訊,當使用者輸入出錯時,自動提示。python還有兩個類似的模組getopt 類似於...
python獲取命令引數 argparse模組
示例 如下 1 encoding utf 8 2import argparse34 defmain args 5print address format args.code address args.address會報錯,因為指定了dest的值 6print flag format args.fla...
Python getopt命令列引數模組
getopt模組專門用來處理命令列引數 getopt模組有兩個函式,兩個屬性 函式 getopt.getopt getopt.gnu getopt 屬性 getopt.error getopt.getopterror getopt.getopt args,shortopts longopts 引數a...