Magicode logo
Magicode
5 min read

[Python実践]argparseに挑戦してみよう!《add_argument編》

https://cdn.apollon.ai/media/notebox/blob_kkfyAc9

はじめに

今回はPythonの「argparse」の基礎と「add_argument」の使い方について解説していこうと思います!
第1弾はこちら!
第3弾はこちら!
argparse」はコマンドライン引数を渡してくれるもので、Pythonエンジニアを目指している方は知っておいた方が良いものになります。
ぜひこの記事でマスターしていってください!
この記事はPythonの公式ドキュメントを参考にしています。
Pythonに限らず、プログラミング言語の公式ドキュメントは非常に読みにくいので、この記事でわかりやすく解説していきます。
argparse使ってみたい
コマンドライン引数を渡してみたい
argparseって何?
自作モジュール作ってみたい
他の人が書いたコードでargparseの部分がわからない
このような人のお役に立てれば幸いです。
それでは早速本題に入っていきましょう!
「argparse」はPythonの基礎を理解していないと難しいので、Pythonの基礎を理解していない人は以下を参考に学習してください!

概要

まずはargparseについて説明していきましょう。
argparseは一言で言えば以下のようになります。
コマンドライン引数を渡せる。
これではよくわからないですよね。
コマンドライン引数」とは、以下のようにPythonファイルを呼び出す際に渡せる値のことです。
python main.py --n cardene --age 30
少し詳しく説明すると、--nはnameで今回はcardeneを渡しています。
--age30という値を渡しています。
def user_profile(name, age):
    print(name)
    print(age)
こんな感じの関数があったとして、cardenename引数に、30ageに渡されるということです。
どうでしょうか理解できたでしょうか?
このように引数が指定されることで、ユーザーごとにカスタムして使えるようにになります。
僕自身Pypiに自作モジュールをあげたことがあります。
このモジュールもterminalでも使用することができ、その際には「コマンドライン引数」を渡す必要があります。
この記事ではその方法を学んでいきます。
「コマンドライン引数」を設定する際、結構細かく設定できるのでぜひ全てマスターしていってください!

add_argument

前章の一番途中に作成したものがadd_argumentです。
add_argumentは1つ1つのコマンドライン引数を細かく設定するものです。
import argparse

parser = argparse.ArgumentParser(description='かるでねブログ用のテストコード')

parser.add_argument('name', type=str, nargs='+', default='cardene', help='username')
parser.add_argument('--age', '-a', nargs='+', type=int, help='user age')

args = parser.parse_args()
5行目、6行目がadd_argumentですね。
色々設定されているのが確認できますが何を設定しているのかわからないと思います。
この章で1つ1つ解説していくので学んでいってください!

引数一覧

  • name flags
    • コマンドライン引数名。
  • type
    • コマンドライン引数の型。
  • default
    • コマンドライン引数のデフォルト値。
  • nargs
    • 受け取れるコマンドライン引数の数。
  • const
    • actionとnargsの組み合わせで利用できる定数。
  • action
    • 引数が呼ばれた時のアクション。
  • choices
    • 選択肢からコマンドライン引数を選べる。
  • required
    • オプション引数を必須にするか任意にするか。
  • help
    • 引数が何なのかを示す簡潔な説明。
  • metavar
    • ヘルプメッセージの中で使われる引数の名前。
  • dest
    • parser_args()が返すオブジェクトに追加される属性名。
では早速1つ1つ確認していきましょう!

name, flags

「コマンドライン引数」の名前。
コマンドライン引数の名前を設定できます。
この部分で位置引数(必須引数)オプション引数かを指定できる。
指定方法としては接頭辞が使われる。
デフォルトでは--を名前の先頭につけることで自動でオプション引数と認識される。
この接頭辞は変更することができるので、以下の記事を参考にしてください。

位置引数

cardenenameなど。

オプション引数

--cardene--ageなど。
実際に見ていきましょう!
import argparse

parser = argparse.ArgumentParser()

parser.add_argument('name', type=str, nargs='+', default='cardene', help='username')
parser.add_argument('--age', nargs='+', type=int, help='user age')

args = parser.parse_args()
5行目と6行目のname--ageが「コマンドライン引数」名です。
terminalでpython main.py --hと実行してください。
usage: main.py [-h] [--age AGE [AGE ...]] name [name ...]

positional arguments:
  name                 username

optional arguments:
  -h, --help           show this help message and exit
  --age AGE [AGE ...]  user age
3行目のpositional arguments位置引数で、6行目のoptional argumentsがオプション引数です。
--が先頭についてるものがオプション引数と認識されていますね。

続き

これより先は以下の記事にまとめています。
より詳しくaddargumentについて学ぶことができるので、興味がある方はぜひ! (もちろん無料です!)

Discussion

コメントにはログインが必要です。