這個是針對我做區塊鏈的一些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...