argparse的簡單使用

2022-01-09 23:09:05 字數 2968 閱讀 1810

這個是針對我做區塊鏈的一些demo時需要用到的,僅把用到了的一些操作記錄,argparse很強大,更多細緻的操作可以參考:

argparse模組如其名字一樣,可以對命令列引數進行解析,可以讓人輕鬆編寫使用者友好的命令列介面

ls命令進行舉例

localhost:~# ls

bench.py hello.c hello.js readme.txt

localhost:~# ls -l

total 16

-rw-r--r-- 1 root root 114 jul 6 01:47 bench.py

-rw-r--r-- 1 root root 76 jul 3 17:15 hello.c

-rw-r--r-- 1 root root 22 jun 26 17:27 hello.js

-rw-r--r-- 1 root root 151 jul 6 01:49 readme.txt

localhost:~# ls -a

. .ash_history .mozilla bench.py hello.js

.. .cache .wine hello.c

我們使用ls命令時通過新增其後不同的引數,我們可以得到不一樣的結果。

在我們自己學習或者開發的過程中,也能會需要一些命令列引數,來方便我們操作,而argparse這個模組正是用來實現這種功能的。

首先我們先來看乙個最簡單的例子:

import argparse

if __name__ == '__main__':

parse = argparse.argumentparser()

parse.add_argument('echo')

args = parse.parse_args()

print(args.echo)

(base) d:>python argparselearn.py

usage: argparselearn.py [-h] echo

argparselearn.py: error: the following arguments are required: echo

(base) d:>python argparselearn.py hello

hello

以上是**以及測試和輸出。

我們來解析一下**部分:

而再看我們的測試部分:

​ 當我們未攜帶引數的時候顯示了error,而當我們帶了引數hello時則將其輸出到終端。

故這種設定引數的方法會使得我們在使用命令時必須攜帶引數

使用以上方法並不能像ls命令一般,需要引數則新增,不需要則不新增。所以我們需要知道如何設定可選引數。再來看乙份示例**:

import argparse

if __name__ == '__main__':

parse = argparse.argumentparser()

parse.add_argument('--echo')

args = parse.parse_args()

print(args.echo)

(base) d:>python argparselearn.py

none

(base) d:>python argparselearn.py --echo hello

hello

這份**相比於之前的位置引數的**,只是在設定引數的時候新增了'--',故設定可選引數時,我們只需在引數名前新增'--'即可

再來觀察測試。若是我們沒有選擇可選引數,我們發現結果為none,所以當我們沒有選擇可選引數時,可選引數預設為none.而當我們新增可選引數,則會將我們所賦的值給args。

短選項但是細心的你是不是還發現這個於ls命令還是有所區別?在ls命令中,我們使用的是ls -a這種短選項命令,而顯然,我們現在還未實現這種做法。那麼看接下這份**:

import argparse

if __name__ == '__main__':

parse = argparse.argumentparser()

parse.add_argument('-e', '--echo')

args = parse.parse_args()

print(args.echo)

(base) d:>python argparselearn.py

none

(base) d:>python argparselearn.py --echo hello

hello

(base) d:>python argparselearn.py -e hello

hello

再次對比這次的**與之前的,會發現,僅僅是add_argument()方法中多新增了乙個'-e'引數,所以設定短選項就是新增乙個類似於'-e'的引數即可。而且'-e'和'--echo'的位置可以交換,不影響。

之前的三種方式咱們可以單獨使用,也可以一起混合使用,看大家需求。

接下來介紹一些add_argument()其中的另外一些引數,幫助我們更好的實現我們的所需。

詳解 argparse庫使用

argparse是python內建的命令列引數解析模組,可以用來為程式配置功能豐富的命令列引數,方便使用,本文總結一下其基本用法。argparse是python標準庫裡面用來處理命令列引數的庫 命令列引數分為位置引數和選項引數 簡介 用於對python指令碼的解析,比如像 檢視 x.py的幫助資訊 ...

Python 中argparse模組的使用

閱讀原文 python解析命令列讀取引數有兩種方式 sys.argv和argparse 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.argv將指令碼後的引數依次讀取 讀進來的預設是字串格式 import sys print 輸入的引數為 s sys.argv 1 命令列執...

Python 中argparse模組的使用

python解析命令列讀取引數有兩種方式 sys.ar 和argparse 如果指令碼很簡單或臨時使用,沒有多個複雜的引數選項,可以直接利用sys.ar 將指令碼後的引數依次讀取 讀進來的預設是字串格式 import sys print 輸入的引數為 s sys.ar 1 命令列執行效果 pytho...