Skip to content

[Python] 使用 argparse 模組讓程式接受外部參數

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,才舉這個當例子。)

Leave a Reply