Argparse模組入門

2021-09-25 23:23:38 字數 2168 閱讀 8746

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")使用了parseradd_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...