Last Updated on 2021-03-29 by Clay
argparse 是 Python 中自帶的一個套件,可以幫助我們設定從終端機(Terminal)裡直接輸入我們所需要的參數。
這樣做的一大好處是我們可以客製化自己想要的輸入參數名稱,通常我們會取上有意義的參數輸入名稱。如果是使用像是 Python 原生的 sys.argv,那麼我們就只能夠按照輸入的順序來記憶我們的參數,有時候在編寫不同參數的實驗腳本檔案時並不方便。
實際例子
上面這樣解釋可能不是很好理解,以下我們來看一個簡單的例子。
from argparse import ArgumentParser parser = ArgumentParser() # basic option parser.add_argument('-num_01', dest='a', help='the first input number') parser.add_argument('-num_02', dest='b', help='the second input number')
"-num_01" 與 "-num_02" 是我們所需要的兩個參數。後頭的 help 則是我們給予參數欄位的說明。
我們再來定義一個簡單的函式:
def sumOF(a, b): print(int(a)+int(b))
這個函式可以讓我們在輸入 a, b 時自動印出 a+b 的答案。
if __name__ == '__main__': a = parser.parse_args().a b = parser.parse_args().b sumOF(a, b)
最後也別忘了將我們輸入的參數存入程式執行時的變數。
如過忘記了這一步,那即使我們從外面給了參數,電腦也不知道我們要拿這些參數做什麼!
上面我們可以看到,我將事先寫好的參數欄位 -num_01, -num_02 分別給予了 1, 7 兩個值。
下一行則很單純地印出了答案:8
這是不是很方便的功能呢?配合 Linux 系統執行 Shell 檔更是妙不可言!(當然,各個 OS 肯定都有自己自動化流程的辦法,只是我比較熟悉 Linux,才舉這個當例子。)