argparse のコンストラクターの引数 prog について

prog を指定しない場合

プログラム

コンストラクターの引数 prog を指定しないプログラムです.これが通常です.

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('a')
args = parser.parse_args()        # コマンドライン引数の取得

print(args.a)

ヘルプの表示

ヘルプを表示させます.

$ python3 echo.py -h
usage: echo.py [-h] a

positional arguments:
  a

optional arguments:
  -h, --help  show this help message and exit

まともなヘルプになっています.

prog を指定

プログラム

コンストラクターの引数 prog を指定したプログラムです.

import argparse

parser = argparse.ArgumentParser(prog='hogehoge')
parser.add_argument('a')
args = parser.parse_args()

print(args.a)

ヘルプの表示

ヘルプを表示させます.

$ python3 echo_prog.py -h
usage: hogehoge [-h] a

positional arguments:
  a

optional arguments:
  -h, --help  show this help message and exit

プログラム名が引数で与えられた文字列になっています.ヘルプとしては,不適切です.