2016-07-25 83 views
1

我試圖寫一個函數,它可以解析1或2個IP地址& searchterm。Python Argparse使用說明

For example: ./system.py 172.16.19.152,172.16.19.153 model\ name 
Output: 
Search term: model name 
Server: 172.16.19.152 
Results: 
Processor 0: 
model name : Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz 
Server: 172.16.19.153 
Results: 
Processor 0: 
model name : Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz 

我怎樣才能得到這個使用說明與argparse:

usage:./system.py {IP}[,{IP}] {SEARCH\ TERM} 
+0

您可以使用argparse解析由逗號分隔的字符串列表,然後掃描列表以獲取一個或兩個IP。搜索詞是基本的argparse。 – Abhinav

+0

(可選)你也可以'nargs'來限制IP的數量 – Abhinav

回答

2
import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument('ips',metavar='IP',nargs='+') 
parser.add_argument('search_term',metavar='SEARCH\\ TERM',nargs=1) 

metavar關鍵字將在你的程序中使用文本中使用。雙反斜槓用於轉義您的SEARCH\ TERM參數的單個反斜槓字符。通過調用parser.parse_args()返回字典將包含解析你的論點可以這樣達到:

args = parser.parse_args() 
args.ips 
args.search_term 

nargs關鍵字會告訴這種論調的數量要傳遞給你的程序。

+意味着至少有一個,1意味着只有一個參數需要傳遞。

+0

感謝它的工作 –

0

要繼續,你可以按照以下使用argparse。

parser = argparse.ArgumentParser() 
parser.add_argument('--IP', nargs=2) 
parser.add_argument('--TERM', nargs=1)