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を理解したら、こちらの記事もおすすめです!
- 🔗 【Python入門】可変長引数 *args と **kwargs の使い方をやさしく解説!
→ 関数の引数を“柔軟に”扱う方法もマスターしよう! - 🔗 【Python入門】自作モジュールの作り方と使い方を初心者向けにやさしく解説!
→ 大きなスクリプトは分けて整理しよう! - 🔗 【Python入門】引数のデフォルト値とタイプアノテーションの使い方をやさしく解説!
→ デフォルト値や型の指定も合わせて理解すると便利!
よくある質問(Q&A)
- QargparseはPythonのどのバージョンから使えますか?
- A
Python 2.7以降、3.xすべてで使えます。今どきのPythonなら標準で入っているので安心です!
- Q入力された引数の数がバラバラでも対応できますか?
- A
はい、
nargs='*'やnargs='+'を使えば、可変個の値をリストで受け取れます!
- Q入力を使って何か処理したいときはどうすればいい?
- A
args.引数名を使って受け取った値を、int()やstrptime()などで加工して使えばOKです!







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。