はじめに
今回は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を渡しています。
--age
は30という値を渡しています。
def user_profile(name, age):
print(name)
print(age)
こんな感じの関数があったとして、cardeneがname
引数に、30がage
に渡されるということです。
どうでしょうか理解できたでしょうか?
このように引数が指定されることで、ユーザーごとにカスタムして使えるようにになります。
僕自身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
「コマンドライン引数」の名前。
コマンドライン引数の名前を設定できます。
この部分で位置引数(必須引数)かオプション引数かを指定できる。
指定方法としては接頭辞が使われる。
デフォルトでは--
を名前の先頭につけることで自動でオプション引数と認識される。
この接頭辞は変更することができるので、以下の記事を参考にしてください。
位置引数
cardene、nameなど。
オプション引数
--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について学ぶことができるので、興味がある方はぜひ!
(もちろん無料です!)