argparse
是標準庫提供的命令列解析模組,它基於廢棄模組optparse
,類似模組還有getopt
,對應c語言中的getopt
函式。
linux使用者應該對以下4個命令不陌生,這4個命令說明了ls
命令4種引數用法。
ls
ls python
ls -l
ls --help
第乙個命令不帶引數
第二個命令中的python是位置引數,命令如何處理位置引數完全取決於引數所處的位置,類似的如cp
命令基本用法中的第乙個引數和第二個引數。
第三個命令中的-l
是可選引數
第四個命令中的--help
引數是預設的可選的幫助引數
程式1:argparse _usage.py
import argparse #匯入argparse
parser = argparse.argumentparser() #初始化解析器
parser.parse_args() #解析命令列
上述**執行後只能使用--help
引數或者它的縮寫-h
,即--hep
引數是預設新增的。
$ py -3 argparse _usage.py
$ py- 3 argparse _usage.py --help
usage: argparse _usage.py [-h]
optional arguments:
-h, --help show this help message and exit
程式2:argparse _usage.py
import argparse
parser = argparse.argumentparser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)
相比於程式1
:
parser.add_argument("echo")
使用了parser
的add_argument()
方法,這是argparse
模組用於定義接受那些命令列引數(選項)的方法。該方法使用引數echo
,表明echo
為位置引數。
parser.parse_args()
的返回值為命令列中輸入的引數資料,資料結構為namespace
,可以理解為類似字典結構的鍵值對,即屬性:屬性值
,訪問屬性(鍵)時可以使用object.attribute
式的語法。在argparse
模組定義中包含namespace
類的定義。類似namespace
的物件可以使用內建函式vars()
轉換為字典。
$ py -3 argparse _usage.py
usage: argparse _usage.py [-h] echo
argparse _usage.py: error: the following arguments are required: echo
$ py -3 argparse _usage.py --help
usage: argparse _usage.py [-h] echo
positional arguments:
echo
optional arguments:
-h, --help show this help message and exit
$ py -3 argparse _usage.py foo
foo
Python解析模組argparse
初學python,今天在偶然間了解到python中有個解析模組argparse,其實此解析模組和linuxc下的getopt 的功能大同小異,寫此篇博文的目的只是為了做個筆記 熟悉linux系統命令的人都知道,每個命令後面都可以跟許多引數來實現不同的功能,拿最簡單的ls來舉例吧 當我們輸入ls是終端...
python學習 argparse模組
這篇教程簡明地介紹了python標準庫推薦使用的命令列引數解析模組 argparse的使用。基本概念 在這篇教程中我們通過乙個常見的ls命令來展示argparse的功能。ls cpython devguide prog.py pypy rm unused function.patch ls pypy...
python使用argparse模組寫命令列內容
寫命令python和c是有很大區別的。c可以通過mian函式,而python可以通過呼叫內建模組。import argparse parse argparse.argumentparser parse.add argument bug feature help file that only cont...