argparse 命令含引數模組

2021-09-07 05:58:49 字數 2167 閱讀 5227

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...