[Python実践]argparseに挑戦してみよう!《add_subparsers編》
はじめに
今回はPythonの「argparse」の基礎と「parse_args」と「add_subparsers」の使い方について解説していこうと思います!
第1弾と第2弾はこちら!
「argparse」はコマンドライン引数を渡してくれるもので、Pythonエンジニアを目指している方は知っておいた方が良いものになります。
ぜひこの記事でマスターしていってください!
この記事はPythonの公式ドキュメントを参考にしています。
Pythonに限らず、プログラミング言語の公式ドキュメントは非常に読みにくいので、この記事でわかりやすく解説していきます。
「argparse使ってみたい」
「コマンドライン引数を渡してみたい」
「argparseって何?」
「自作モジュール作ってみたい」
「他の人が書いたコードでargparseの部分がわからない」
このような人のお役に立てれば幸いです。
それでは早速本題に入っていきましょう!
概要
まずはargparseについて説明していきましょう。
argparseは一言で言えば以下のようになります。
これではよくわからないですよね。
「コマンドライン引数」とは、以下のようにPythonファイルを呼び出す際に渡せる値のことです。
python main.py --n cardene --age 30
少し詳しく説明すると、--nはname
で今回はcardeneを渡しています。
--age
は30という値を渡しています。
def user_profile(name, age):
print(name)
print(age)
こんな感じの関数があったとして、cardeneがname
引数に、30がage
に渡されるということです。
どうでしょうか理解できたでしょうか?
このように引数が指定されることで、ユーザーごとにカスタムして使えるようにになります。
僕自身Pypiに自作モジュールをあげたことがあります。
このモジュールもterminalでも使用することができ、その際には「コマンドライン引数」を渡す必要があります。
この記事ではその方法を学んでいきます。
「コマンドライン引数」を設定する際、結構細かく設定できるのでぜひ全てマスターしていってください!
parse_args
概要
コマンドライン引数とそれに紐づく値を解析して、適切にリストに格納してくれます。
parse_args
にも指定できるいくつかの引数があるので確認しましょう。
「百聞は一見に如かず」ということで早速1つ1つみていきましょう。
args
パーサーに渡したいコマンドライン引数とその値の組みをリストにしたものです。
args = parser.parse_args(["cardene", "--age=10"])
このように指定できます。
位置引数は特にコマンドライン引数名を指定せず、オプション引数のみ指定します。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('name', help='username')
parser.add_argument('--age', type=int, help='user age')
args = parser.parse_args(["cardene", "--age=10"])
print(args)
8行目で先ほどと同じように指定していますね。
terminalでpython main.py cardene --age 10
と実行してください。
Namespace(name='cardene', age=10)
ちゃんと自分が指定した通りに出力されていますね。
続き
これより先は以下の記事にまとめています。
より詳しくadd_subparsersについて学ぶことができるので、興味がある方はぜひ!
(もちろん無料です!)
Discussion