Python命令行解析工具argparse模塊
argparse模塊簡介
argparse模塊是一個python標準庫,它主要用于對用戶從客戶端輸入的命令進行解析,這使得編寫用戶友好的命令行接口變得非常容易。
程序只需要定義好用戶可以從終端可以輸入哪些參數(shù),以及參數(shù)對應的含義、數(shù)據(jù)類型即可,然后argparse將負責從sys.argv中解析出這些參數(shù)。argparse模塊還會自動生成幫助信息和使用信息并且當用戶賦給程序非法的參數(shù)的時候會出現(xiàn)友好的錯誤提示信息。
使用方法
(1)導入argparse模塊
(2)創(chuàng)建一個解析器對象
(3)使用對象內(nèi)置的add_argument()方法添加需要關注的命令參數(shù)和選項
(4)之后調(diào)用parse_args()方法解析命令即可
示例:
import argparse #導入argparse該模塊; parser = argparse.ArgumentParser() #創(chuàng)建一個解析器對象 parser.add_argument() #添加令行參數(shù)和選項,每一個add_argument方法對應一個參數(shù)或選項; args=parser.parse_args() #調(diào)用parse_args()方法進行解析,解析成功之后即可使用
ArgumentParser對象介紹
class argparse.ArgumentParser( prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse. HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True)
參數(shù)說明:
參數(shù) | 描述 |
prog | 程序的名字(默認:sys.argv[0]) |
usage | 描述程序用法的字符串(默認:從解析器的參數(shù)生成) |
description | 參數(shù)幫助信息之前的文本(默認:空) |
epilog | 參數(shù)幫助信息之后的文本(默認:空) |
parents | ArgumentParser 對象的一個列表,這些對象的參數(shù)應該包括進去 |
formatter_class | 定制化幫助信息的類 |
prefix_chars | 可選參數(shù)的前綴字符集(默認:‘-‘) |
fromfile_prefix_chars | 額外的參數(shù)應該讀取的文件的前綴字符集(默 |
argument_default | 參數(shù)的全局默認值(默認:None) |
conflict_handler | 解決沖突的可選參數(shù)的策略(通常沒有必要) |
add_help | 給解析器添加-h/–help 選項(默認:True) |
add_argument函數(shù)簡介
ArgumentParser.add_argument( name or flags... [, action] [, nargs] [, const] [, default] [, type] [, choices] [, required] [, help] [, metavar] [, dest])
參數(shù)說明
參數(shù) | 描述 |
name or flags | 選項字符串的名字或者列表,例如foo 或者-f, –foo |
action | 在命令行遇到該參數(shù)時采取的基本動作類型。 |
nargs | 應該讀取的命令行參數(shù)數(shù)目。 |
const | 某些action和nargs選項要求的常數(shù)值。 |
default | 如果命令行中沒有出現(xiàn)該參數(shù)時的默認值。 |
type | 命令行參數(shù)應該被轉(zhuǎn)換成的類型。 |
choices | 參數(shù)可允許的值的一個容器。 |
required - 該命令行選項是否可以省略(只針對可選參數(shù))。 | |
help | 參數(shù)的簡短描述。 |
metavar | 參數(shù)在幫助信息中的名字。 |
dest | 給parse_args()返回的對象要添加的屬性名稱。 |
其中“type”、“help”、“action”、“default”、“name ”、“dest”使用最為頻繁
實戰(zhàn)演示
(1)可選參數(shù)
代碼如下:
import argparse parser=argparse.ArgumentParser() parser.add_argument("-display",help="display the message!") args=parser.parse_args() if args.display: print "Display is trun on!"
運行結果:
注:可選參數(shù)可以在add_argment("這里如果加上“-”,則說明是可選的,否則是必須的")定義
(2)短選項
有時候?qū)懸粋€匹配項的時候還需要寫全拼,實在是有些麻煩,在Linux中大多數(shù)的交互命令都有簡寫,那么我們也可以來進行設置短選項
代碼如下:
import argparse parser=argparse.ArgumentParser() parser.add_argument("-d","--display",help="display the message!",action="store_true") args=parser.parse_args() if args.display: print "Display is trun on!"
(3)結合位置參數(shù)與可選參數(shù)
代碼如下:
import argparse parser = argparse.ArgumentParser() parser.add_argument("square", type=int, help="display a square of a given number") parser.add_argument("-v", "--verbose", action="store_true", help="increase output verbosity") args = parser.parse_args() answer = args.square**2 if args.verbose: print "the square of {} equals {}".format(args.square, answer) else: print answer
運行結果如下:
到此這篇關于Python命令行解析工具argparse模塊的文章就介紹到這了,更多相關Python的argparse模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python成功解決讀文件出現(xiàn):IOError:?[Errno?0]?Error的錯誤
在Python編程中,處理文件是常見的任務之一,但偶爾也會遇到各種錯誤,包括IOError,盡管Python?3.x中IOError已被OSError和FileNotFoundError等更具體的異常所取代,由于[Errno?0]不直接指向具體的錯誤類型,我們將討論一系列可能導致IOError的常見情況,需要的朋友可以參考下2024-07-07python numpy.ndarray中如何將數(shù)據(jù)轉(zhuǎn)為int型
這篇文章主要介紹了python numpy.ndarray中如何將數(shù)據(jù)轉(zhuǎn)為int型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05python抓取網(wǎng)頁時字符集轉(zhuǎn)換問題處理方案分享
python學習過程中發(fā)現(xiàn)英文不好學起來挺困難的,其中小弟就遇到一個十分蛋疼的問題,百度了半天就沒找到解決辦法~囧~摸索了半天自己解決了,記錄下來與君共勉。2014-06-06