【Python3】argparseを使ってみた

argparseモジュールを用いることで,コマンドライン引数として渡されたオプションを簡単にパース出来る.

import argparse

# parserインスタンスを作成
parser = argparse.ArgumentParser(description='Example command', add_help=True)

はじめに,parserインスタンスを作成する.このインスタンスに対してオプションの追加していことで,プログラムの実行の際に渡すべき引数を登録する.この登録に使う,add_argument には,オプションを柔軟に使用するための機能がいくつも用意されている.

# 文字列を受け取るオプション
# help では,ヘルプ表示時のオプションの説明用文字列を指定する
# required では,プログラムの実行にその引数が必須であるかを指定する
parser.add_argument('-f', '--file', type=str, help='    : destination file', required=True)

# 整数値を受け取るオプション
# default では,引数が渡されなかった際のデフォルト値を指定する
parser.add_argument('-w', '--width', type=int, help='   : width of rim', default=1, required=False)
parser.add_argument('-c', '--color', type=str, help='   : color code of rim', default='#FFFFFF', required=False)

params = parser.parse_arg()

受け取った引数は,parse_arg が実行されたタイミングでパースされ,正常にパースされるとその結果を返す.返された値には,オプション追加時にふたつ目の引数として渡した値から以下の様にアクセスする.

# オプションとして渡された値を取得する
file = parser.file
width = parser.width
color = parser.color

ArgumentParser では,引数 -h を作成しなくても,引数の定義から自動的にヘルプを表示するオプションを作成する.上記の設定だと,以下の様なヘルプが表示される.

Example command

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

-f FILE, --file FILE     : destination file
-w WIDTH, --width WIDTH : width of rim
-c COLOR, --color COLOR : color code of rim

Process finished with exit code 0

特定のオプションを明示的に必須なものに出来るから,オプションを読み込んだ後の例外処理をせずに済んだ.実行に問題がある場合には,自動作成されたヘルプが表示されるので,簡単で便利