1. 程式人生 > >argparse:解析命令列選項

argparse:解析命令列選項

argparse模組

在每個 add_argument() 呼叫中,dest 引數指定解析結果被指派給屬性的名字。 metavar 引數被用來生成幫助資訊。action 引數指定跟屬性對應的處理邏輯, 通常的值為 store ,被用來儲存某個值或將多個引數值收集到一個列表中。

# search.py
'''
Hypothetical command-line tool for searching a collection of
files for one or more text patterns.
'''
import argparse
parser = argparse.ArgumentParser(description='Search some files')

parser.add_argument(dest='filenames',metavar='filename', nargs='*')

parser.add_argument('-p', '--pat',metavar='pattern', required=True,
                    dest='patterns', action='append',
                    help='text pattern to search for')

parser.add_argument('-v', dest='verbose', action='store_true',
                    help='verbose mode')

parser.add_argument('-o', dest='outfile', action='store',
                    help='output file')

parser.add_argument('--speed', dest='speed', action='store',
                    choices={'slow','fast'}, default='slow',
                    help='search speed')

args = parser.parse_args()

# Output the collected arguments
print(args.filenames)
print(args.patterns)
print(args.verbose)
print(args.outfile)
print(args.speed)

下面的引數收集所有剩餘的命令列引數到一個列表中:

parser.add_argument(dest='filenames',metavar='filename', nargs='*')

下面的引數根據引數是否存在來設定一個 Boolean 標誌:

parser.add_argument('-v', dest='verbose', action='store_true',
                    help='verbose mode')

下面的引數接受一個單獨值並將其儲存為一個字串:

parser.add_argument('-o', dest='outfile', action='store',
                    help='output file')

下面的引數說明允許某個引數重複出現多次,並將它們追加到一個列表中去。 required 標誌表示該引數至少要有一個。-p--pat 表示兩個引數名形式都可使用。

parser.add_argument('-p', '--pat',metavar='pattern', required=True,
                    dest='patterns', action='append',
                    help='text pattern to search for')

最後,下面的引數說明接受一個值,但是會將其和可能的選擇值做比較,以檢測其合法性:

parser.add_argument('--speed', dest='speed', action='store',
                    choices={'slow','fast'}, default='slow',
                    help='search speed')

一旦引數選項被指定,你就可以執行 parser.parse() 方法了。 它會處理 sys.argv 的值並返回一個結果例項。 每個引數值會被設定成該例項中 add_argument() 方法的 dest 引數指定的屬性值。

相關推薦

argparse解析命令選項

argparse模組 在每個 add_argument() 呼叫中,dest 引數指定解析結果被指派給屬性的名字。 metavar 引數被用來生成幫助資訊。action 引數指定跟屬性對應的處理邏輯, 通常的值為 store ,被用來儲存某個值或將多個引數值收集

Python 使用argparse模組解析命令讀取引數簡介

在多個檔案或者不同語言協同的專案中,python指令碼經常需要從命令列直接讀取引數。萬能的python就自帶了argprase包使得這一工作變得簡單而規範。PS:optparse包是類似的功能,只不過寫起來更麻煩一些。 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.argv將指令碼

Qt解析命令

Qt從5.2版開始提供了兩個類QCommandLineOption和QCommandLineParser來解析應用的命令列引數。 一、命令列寫法 命令列:"-abc" 在QCommandLineParser的解析模式為ParseAsCompactedShortOption

argparse - 命令選項與引數解析

閱讀原文點我 argparse模組作為optparse的一個替代被新增到Python2.7。argparse的實現支援一些不易於新增到optparse以及要求向後不相容API變化的特性,因此以一個新模組新增到標準庫。 與optparse相比較 argparse的API類似於optpars

python-argparse命令選項與引數解析

設定一個解析器 使用argparse的第一步就是建立一個解析器物件,並告訴它將會有些什麼引數。那麼當你的程式執行時,該解析器就可以用於處理命令列引數。 解析器類是 ArgumentParser 。

命令選項解析函式(C語言)getopt()、getopt_long()和getopt_long_only

上午在看原始碼專案 webbench 時,剛開始就被一個似乎挺陌生函式 getopt_long() 給卡住了,說實話這函式沒怎麼見過,自然不知道這哥們是幹什麼的。於是乎百度了一番,原來是處理命令列選項引數的,的確,正規點的大型程式一般第一步就是處理命令列引數

Python關於命令引數argparse寫入圖片路徑

什麼是命令列引數? 命令列引數是在執行時給予程式/指令碼的標誌。它們包含我們程式的附加資訊,以便它可以執行。 並非所有程式都有命令列引數,因為並非所有程式都需要它們。 為什麼我們使用命令列引數? 如上所述,命令列引數在執行時為程式提供附加資訊。 這允許我們在不改變程式碼的情況下動

命令選項與引數解析(譯)

轉載:http://blog.xiayf.cn/2013/03/30/argparse/ argparse模組作為optparse的一個替代被新增到Python2.7。argparse的實現支援一些不易於新增到optparse以及要求向後不相容API變化的特性,因此以一個新模組新增到標準庫。

13.4 argparse--分析命令選項、引數功能

本模組主要為了方便實現命令列引數處理,或者分析命令列引數。建立命令列引數分析器:#python 3.4import argparseparser = argparse.ArgumentParser(description='Process some integers.')pr

Python命令選項引數解析策略

概述 在Python的專案開發過程中,我們有時需要為程式提供一些可以通過命令列進行呼叫的介面。不過,並不是直接使用 command + 當前檔案 就ok的,我們需要對其設定可選的各種各樣的操作型別。所以,這種情況下我們就有必要對傳入的引數進行解析操作。下面就此

命令選項引數解析-getopt函式

在學習Unix/Linux程式設計實踐教程時,編寫練習一些linux命令,需要對命令列引數進行解析,從而接觸到getopt系列函式: 1. getopt() 2. getopt_long() 3.getopt_long_only() 總結如下: Parse c

centos升級gcc到4.8.2(cc1plus: 錯誤無法識別的命令選項“-std=c++11”)

驗證:gcc -v;或者g++ -v,如果顯示的gcc版本仍是以前的版本,就需要重啟系統;或者可以檢視gcc的安裝位置:which gcc;然後在檢視版本 /usr/local/bin/gcc -v,通常gcc都安裝在該處位置

命令選項與引數解析(轉)

argparse模組作為optparse的一個替代被新增到Python2.7。argparse的實現支援一些不易於新增到optparse以及要求向後不相容API變化的特性,因此以一個新模組新增到標準庫。 與optparse相比較 argparse的API類似於optparse,甚至在很多情況下

Apollo程式碼解析3. 命令引數傳遞google gflags

簡介 在百度Apollo中gflag被廣泛的應用在各種全域性變數中,例如節點名,變數名,各種狀態標誌中。 gflags 是google開源的一套命令列引數解析工具,比 getopt 功能更加強大,使用起來更加方便。 什麼是 命令列引數解析工具 呢? 這裡拿p

getopt/getoptsBash中命令選項/引數處理

本文轉載自: http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html -- 0.引言    寫程式的時候經常要處理命令列引數,本文描述在Bash下的命令列處理方式。    選項與引數:    如下

Python解析命令讀取引數 -- argparse模組

在多個檔案或者不同語言協同的專案中,python指令碼經常需要從命令列直接讀取引數。萬能的python就自帶了argprase包使得這一工作變得簡單而規範。PS:optparse包是類似的功能,只不過寫起來更麻煩一些。 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項

main:處理命令選項

有時我們需要給main函式傳遞實參, 我們可以把命令列選項通過兩個形參傳遞給main函式: int mian(int argc, char *argv[]) { ... }; argv是argument value,是一個數組,它的元素是指向C風格字串的指標;第一個形參argc是argument coun

argparse配合pycharm命令引數

1、未新增命令列引數的時候 import argparse parser = argparse.ArgumentParser() parser.add_argument("square", type=int, help="display a square of a given number")

CCF Python題解(100分)201403-3 命令選項

CCF Python題解(100分)201403-3 命令列選項 form = input() n = int(input()) def judge(str3): flag = True for k in str3: if not (k.islower

201403-3命令選項(c++,字串處理)

試題編號: 201403-3 試題名稱: 命令列選項 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問