使用 argparse 自定義解析器錯誤訊息

你可以根據指令碼需要建立解析器錯誤訊息。這是通過 argparse.ArgumentParser.error 功能。下面的示例顯示了當給出 --foo 而不是 --bar 時,指令碼會向 stderr 列印用法和錯誤訊息。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-f", "--foo")
parser.add_argument("-b", "--bar")
args = parser.parse_args()
if args.foo and args.bar is None:
    parser.error("--foo requires --bar. You did not specify bar.")

print "foo =", args.foo
print "bar =", args.bar

假設你的指令碼名稱是 sample.py,我們執行:python sample.py --foo ds_in_fridge

該指令碼將抱怨以下內容:

usage: sample.py [-h] [-f FOO] [-b BAR]
sample.py: error: --foo requires --bar. You did not specify bar.