🙂

Pythonでコマンドライン引数を受け取る関数

に公開

はじめに

Pythonでコマンドライン引数を受け取る処理が必要になった時用のコードスニペットです。

コードテンプレート

parse_args.py
import argparse

class ParsedArguments:
  """パース後のコマンドライン引数を格納するためのクラス

  Attributes
  ----------
  hoge: str
      引数--hogeの値
  fuga: str
      引数--fugaの値
  """
  hoge: str
  fuga: str

def parse_args() -> ParsedArguments:
  """コマンドライン引数をパースして、型付けされたインスタンスとして返す。

  Returns
  -------
  ParsedArguments
      パースされた引数が格納されたインスタンス。
  """
  parser = argparse.ArgumentParser(description="This is sample command.")
  parser.add_argument('--hoge', type=str, required=True, help='This is hoge argument.')
  parser.add_argument('--fuga', type=str, required=True, help='This is fuga argument.')

  args = ParsedArguments()
  parser.parse_args(namespace=args)

  return args

if __name__ == '__main__':
    args = parse_args()
    print(f"hoge: {args.hoge}")
    print(f"fuga: {args.fuga}")

使い方

ParsedArgumentsとparse_args()をコピーし、処理の初めにparse_argsを呼び出すだけでコマンドライン引数を受け取ることができます。ParsedArgumentsクラスを定義することで、IDEでの補完が効くようになります。

Discussion