🐍

[Python実践]argparseに挑戦!《ArgumentParser編》

2022/04/30に公開

はじめに

今回はPythonの「argparse」の基礎と「ArgumentParser」の使い方について解説していこうと思います!

add_argument」についてはこちらを参考にしてください。

https://chaldene.net/argparse-addargument

https://chaldene.net/argparse-parseargs

argparse」コマンドライン引数を渡してくれるもので、Pythonエンジニアを目指している方は知っておいた方が良いものになります。

ぜひこの記事でマスターしていってください!

この記事はPythonの公式ドキュメントを参考にしています。

Pythonに限らず、プログラミング言語の公式ドキュメントは非常に読みにくいので、この記事でわかりやすく解説していきます。

argparse使ってみたい

コマンドライン引数を渡してみたい

argparseって何?

自作モジュール作ってみたい

このような人のお役に立てれば幸いです。

それでは早速本題に入っていきましょう!

https://chaldene.net/python-book

概要

まずは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に自作モジュールをあげたことがあります。

https://pypi.org/project/comnamepy/

このモジュールもterminalでも使用することができ、その際には「コマンドライン引数」を渡す必要があります。

この記事ではその方法を学んでいきます。

「コマンドライン引数」を設定する際、結構細かく設定できるのでぜひ全てマスターしていってください!

基本

まずは基本的な使い方をざっくりみていきます。

理解できなくても大丈夫なのでまずはみていきましょう!

まずはArgumentParserオブジェクトを作成することから始める。

import argparse

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

parserというオブジェクトを作成しました。

ここに2つの「コマンドライン引数」を追加していきます。

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()

nameageという引数を追加しました。

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 ...], -a AGE [AGE ...]
                        user age

1行目のコマンドをterminalに入力すると以下のように出力されます。

--hはhelpの略で、「コマンドライン引数」の使い方を確認できます。

positional argumentsは必須に引数です。

optional argumentsはオプションの引数で、なくても問題ないものです。

コード上でどう指定するかというと、Pythonコードのname--ageの部分を見ればわかります。

--というのが先頭についているとオプション引数で、ついていないと必須引数となります。

早速コマンドライン引数を渡してみましょう!

terminalで以下のコマンドを実行してください。

python main.py cardene -a 30

namecardeneを渡し、age30を渡しました。

Namespace(name=['cardene'], age=[30])

そうすると上記のように出力されました。

ここまでで基本的な使い方を確認しました!

https://chaldene.net/udemy

続き

これより先は以下の記事にまとめています。

https://chaldene.net/argparse-argumentparser

より詳しくArgumentparserについて学ぶことができるので、興味がある方はぜひ!
(もちろん無料です!)

Discussion