スポンサーリンク

Pythonのargparse入門|コマンドライン引数を初心者向けにやさしく解説!

Python入門
  1. 1. はじめに|コマンドライン引数ってなに?なにが便利なの?
    1. ● コマンドライン引数ってなに?
    2. ● 何がうれしいの?
    3. ● この記事で学べること
  2. 2. コマンドライン引数の基本とは?
    1. ● まずは例を見てみよう
    2. ● なぜ sys じゃなくて argparse を使うの?
    3. ● コマンドラインでの実行形式は?
    4. ● まとめ:これから何を学ぶの?
  3. 3. argparseモジュールの使い方
    1. 3-1. argparseのインポートと準備
    2. 3-2. ArgumentParserオブジェクトの作成
    3. 3-3. 位置引数の使い方
    4. 3-4. オプショナル引数の使い方
    5. 3-5. 型指定・デフォルト・説明文など
    6. 🎉ここまでのまとめ
  4. 4. よくある活用例3つ|argparseでスクリプトがもっと便利に!
    1. 🔸例1:日付を受け取って曜日を表示する
      1. 実行方法:
      2. 実行結果:
    2. 🔸例2:オプションであいさつの名前を変える
      1. 実行方法:
      2. 実行結果:
    3. 🔸例3:複数の数値を渡して合計を出す
      1. 実行方法:
      2. 実行結果:
    4. 🎉この章のポイント!
  5. 5. エラーにならないための注意点|argparseでつまずかないために
    1. 🔸1. 引数が足りないと怒られる!
      1. 対策:
    2. 🔸2. 型を指定したら変換ミスでエラーに!
      1. 対策:
    3. 🔸3. 引数の順番がバラバラだとうまく動かない!
      1. 対策:
    4. 🔸4. オプショナル引数が必須なの?
      1. 対策:
    5. 🔸5. 助けて!オプションが何かわからない!
      1. 出力例:
    6. 🎉まとめ:エラー対策は“しくみを知る”こと!
  6. 6. まとめ|argparseでPythonスクリプトがもっと便利に!
    1. 🔍この記事で学んだことまとめ
    2. 🧭 あわせて読みたい
  7. よくある質問(Q&A)
    1. 関連投稿:

1. はじめに|コマンドライン引数ってなに?なにが便利なの?

Pythonでちょっとしたプログラムを書けるようになると、「もっと便利に動かしたいな」と思うこと、ありませんか?

たとえば、「今日の日付を入力して、その曜日を教えてくれるプログラム」を作ったとします。でも、日付をプログラムの中に毎回書きかえるのって、ちょっと面倒ですよね。

そんなときに便利なのが 「コマンドライン引数(ひきすう)」 なんです!


● コマンドライン引数ってなに?

「コマンドライン引数」っていうのは、Pythonのプログラムを実行するときに 一緒に入力できる追加の情報 のことです。

たとえば、次のようにプログラムを動かすと…

python hello.py 2025/06/12

この 2025/06/12 が「引数(argument)」です。プログラムの中でこの値を受け取って、処理に使うことができるんですね。


● 何がうれしいの?

コマンドライン引数を使うと、プログラムの中身をいじらなくても、毎回ちがうデータで動かせるようになります。

たとえばこんなことができるように!

目的引数で渡す内容結果
曜日を調べたい日付曜日を表示
ファイルを開きたいファイル名中身を表示
画像を変換したい画像名とサイズサイズ変更された画像が保存される

これなら、1つのプログラムでいろんなケースに対応できて、とっても効率的ですよね。


● この記事で学べること

この記事では、Pythonでコマンドライン引数を使うためのツール「argparse(アーグパース)」について、やさしく・ゆっくり解説していきます。

「引数ってなに?」「どうやって受け取るの?」「便利な使い方は?」そんな疑問をひとつずつ解決していくので、どうぞ安心して読み進めてくださいね😊




2. コマンドライン引数の基本とは?

Pythonのプログラムは、ふつう「スクリプト」と呼ばれる .py ファイルを使って実行します。コマンドライン引数を使えば、そのスクリプトに「外から値を渡すこと」ができるんです。


● まずは例を見てみよう

たとえば、こんなPythonファイル hello.py があるとします。

import sys

print(sys.argv)

そして、次のように実行してみます:

python hello.py こんにちは

すると、こんな結果が表示されます。

['hello.py', 'こんにちは']

これは、sys.argv というリスト(配列のようなもの)に、スクリプト名と引数が格納されている状態です。

  • sys.argv[0] はスクリプト名(ここでは hello.py
  • sys.argv[1] 以降が、渡された引数になります

● なぜ sys じゃなくて argparse を使うの?

さきほどの例では sys.argv を使いましたが、実はこれだけだと不便なことが多いんです。

  • 引数が足りないときのエラーチェックが自分で必要
  • オプション(例:-v--help)を自作するのが大変
  • 引数に型(数値とか文字列とか)を指定できない

こんな悩みを解決してくれるのが、今回メインで紹介する argparseモジュール です!


● コマンドラインでの実行形式は?

コマンドライン引数を使ったスクリプトは、次のように実行します:

python スクリプト名.py 引数1 引数2 ...

たとえば、特定の日付を渡して曜日を表示するなら:

python get_weekday.py 2025/06/12

この 2025/06/12 が、プログラム内で使える引数になります。


● まとめ:これから何を学ぶの?

これからの記事では、もっと便利な引数の受け取り方ができるように、以下の内容を順番に紹介していきます。

  • argparse の基本的な使い方
  • 位置引数・オプショナル引数の違い
  • よく使うパラメータ(type, default, help など)
  • 実用的なサンプルと活用アイデア

それでは次に、argparse を実際に使ってみましょう!




3. argparseモジュールの使い方

ここからは、Pythonの標準モジュール「argparse(アーグパース)」を使って、コマンドライン引数をカンタン&便利に扱う方法を解説していきます!

「初めてでもちゃんと動く」コードを、ステップごとに説明していくので、安心してついてきてくださいね😊


3-1. argparseのインポートと準備

まずは argparse を使えるように、Pythonファイルの冒頭でインポートします。

import argparse

argparse はPythonにもともと入っているので、pipなどの追加インストールは不要です!


3-2. ArgumentParserオブジェクトの作成

次に、引数のルールをまとめて管理するための「ArgumentParserオブジェクト」を作ります。

parser = argparse.ArgumentParser()

この parser に、「どんな引数を受け取るのか?」を登録していきます。


3-3. 位置引数の使い方

位置引数とは、値の順番が決まっている引数のことです。

例:日付を受け取るスクリプト

parser.add_argument("date", help="日付を入力してください(例: 2025/06/12)")

ここで "date" は引数名、help は説明文です。

引数を受け取って使うには、次のように parse_args() を呼び出します。

args = parser.parse_args()
print(args.date)

これで、次のように実行すると…

python weekday.py 2025/06/12

ターミナルに 2025/06/12 と表示されます!


3-4. オプショナル引数の使い方

オプショナル引数は、名前(---付き)とセットで指定できる引数です。

parser.add_argument("-n", "--name", help="あなたの名前", default="ゲスト")

これは -n または --name という引数を受け取る設定です。指定されなければ "ゲスト" になります。

args = parser.parse_args()
print(f"こんにちは、{args.name}さん!")

実行例:

python hello.py --name ユウタ
# → こんにちは、ユウタさん!

python hello.py
# → こんにちは、ゲストさん!

3-5. 型指定・デフォルト・説明文など

add_argument() では、さまざまなオプションを使って引数の性質を細かく設定できます。

パラメータ説明
type引数のデータ型を指定type=int
default指定がないときの値default=10
help--help で表示される説明文help="数値を入力"
choices指定できる選択肢を制限choices=["yes", "no"]
requiredオプショナル引数を必須にするrequired=True
nargs複数の値をリストで受け取るnargs=3など

🎉ここまでのまとめ

  • argparse を使うと、引数をわかりやすく・安全に受け取れる!
  • add_argument() で引数を追加し、parse_args() で受け取る
  • 位置引数とオプショナル引数、それぞれの使い方に慣れておこう



4. よくある活用例3つ|argparseでスクリプトがもっと便利に!

ここからは実際に「argparseを使うとこんなことができるよ!」という具体的な活用例を3つご紹介します。

どれもカンタンで楽しい内容なので、ぜひマネして書いてみてくださいね😊


🔸例1:日付を受け取って曜日を表示する

import argparse
from datetime import datetime

parser = argparse.ArgumentParser()
parser.add_argument("date", help="日付を入力してください(例: 2025/06/12)")
args = parser.parse_args()

try:
dt = datetime.strptime(args.date, "%Y/%m/%d")
print(f"{args.date} は {dt.strftime('%A')} です。")
except ValueError:
print("正しい形式で日付を入力してください(例: 2025/06/12)")

実行方法:

python weekday.py 2025/06/12

実行結果:

2025/06/12 は Thursday です。

🔸例2:オプションであいさつの名前を変える

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-n", "--name", help="名前を指定してください", default="ゲスト")
args = parser.parse_args()

print(f"こんにちは、{args.name}さん!")

実行方法:

python greet.py --name カナ
# または
python greet.py -n カナ

実行結果:

こんにちは、カナさん!

※ 引数を省略すると "ゲスト" と表示されます。


🔸例3:複数の数値を渡して合計を出す

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("nums", nargs="+", type=int, help="足し算したい数値をスペースで区切って入力")
args = parser.parse_args()

total = sum(args.nums)
print(f"合計は {total} です。")

実行方法:

python sum.py 10 20 30

実行結果:

合計は 60 です。

nargs="+" を使うことで、いくつでも数値を渡せるようになります!(リストで受け取れます)


🎉この章のポイント!

機能使用例説明
位置引数add_argument("date")入力が必須、順番も大事
オプショナル引数--name -n名前と値をペアで渡す
データ型の変換type=int文字を数値として扱う
複数値の入力nargs="+"複数の値をリストとして受け取る



5. エラーにならないための注意点|argparseでつまずかないために

argparseはとても便利なモジュールですが、使っていると「エラーが出た!😢」なんてこともあります。ここでは初心者がよくハマるポイントとその対処法を、わかりやすく紹介していきます!


🔸1. 引数が足りないと怒られる!

位置引数(必須の引数)は必ず入力する必要があります。

parser.add_argument("date")

この状態で引数を入力しないと…

python script.py

としたとき、こんなエラーになります:

usage: script.py [-h] date
script.py: error: the following arguments are required: date

対策:

  • 入力忘れに注意する
  • または、nargs='?'default を使って省略可能にする

🔸2. 型を指定したら変換ミスでエラーに!

parser.add_argument("num", type=int)

ここで文字を入れてしまうと…

python script.py abc

こんなエラーになります:

error: argument num: invalid int value: 'abc'

対策:

  • type を指定したら、ちゃんとその型の値を渡す
  • try-except を使って、変換に失敗したときにメッセージを出すのもおすすめ

🔸3. 引数の順番がバラバラだとうまく動かない!

位置引数は順番がとても大事です。

parser.add_argument("first")
parser.add_argument("second")

この場合、

python script.py A B

としないと、first = A, second = B になりません。

対策:

  • 順番を守る(A → Bの順で入力する)
  • どうしても柔軟にしたいときはオプショナル引数にする

🔸4. オプショナル引数が必須なの?

オプショナル引数(例:--name)は、基本的に省略してもOKです。

でも required=True をつけると、必須になります!

parser.add_argument("--name", required=True)

これを忘れて実行するとエラーになります:

error: the following arguments are required: --name

対策:

  • 本当に必須にしたいときだけ required=True を使う
  • エラーが出たら --help で確認してみよう!

🔸5. 助けて!オプションが何かわからない!

argparse はとっても親切で、-h または --help を入力すると使い方の説明を自動で表示してくれます!

python script.py -h

出力例:

usage: script.py [-h] --name NAME
optional arguments:
-h, --help show this help message and exit
--name NAME あなたの名前

これはとても便利なので、まず困ったら -h を試しましょう!


🎉まとめ:エラー対策は“しくみを知る”こと!

よくあるミス原因対処法
引数が足りない位置引数の入力忘れnargs='?'default を活用
型エラー文字列を数値に変換できないtry-except を使ってカバー
順番が違う位置引数の並び順ミス入力の順番に注意
オプションが必須required=True の見落としhelp文を確認する
使い方がわからない引数が多くて混乱-h でいつでも助けが得られる!



6. まとめ|argparseでPythonスクリプトがもっと便利に!

ここまで読んでくださって、ありがとうございます!

Pythonでの「コマンドライン引数」の使い方、そして argparse モジュールを使うことでどんなふうに便利になるか、イメージできたでしょうか?


🔍この記事で学んだことまとめ

学んだことポイント
コマンドライン引数とは?スクリプトに外から値を渡して使う方法
argparseの基本add_argument()で引数を定義、parse_args()で受け取る
位置引数とオプション引数両方の違いと使い分け方を紹介
よくある活用例曜日表示・名前付きあいさつ・合計計算など実用例
エラー対策よくあるミスと対処法をわかりやすく解説

argparse を使いこなせれば、Pythonのスクリプトが一気に“道具”として便利になるので、ぜひ色んな場面で活用してみてくださいね!


🧭 あわせて読みたい

argparseを理解したら、こちらの記事もおすすめです!


よくある質問(Q&A)

Q
argparseはPythonのどのバージョンから使えますか?
A

Python 2.7以降、3.xすべてで使えます。今どきのPythonなら標準で入っているので安心です!

Q
入力された引数の数がバラバラでも対応できますか?
A

はい、nargs='*'nargs='+' を使えば、可変個の値をリストで受け取れます!

Q
入力を使って何か処理したいときはどうすればいい?
A

args.引数名 を使って受け取った値を、int()strptime() などで加工して使えばOKです!

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク