Python 文法・関数

Pythonのコマンドライン引数がわかる!渡し方・取得方法を分かりやすく解説

Pythonを学ぶ上で必須となるのがコマンドライン引数。そんなコマンドライン引数ですが、初めてPythonを学習する人にはかなり難しいのではないでしょうか。

この記事ではPythonで使用するコマンドライン引数の渡し方、取得方法を初心者でも分かるように解説するので、学習につまずいている方はぜひ参考にしてください。


本ブログを運営しているTech Teacherは、業界初のプログラミング家庭教師サービスを提供しています。

その特徴は完全マンツーマン・フルオーダーメイド指導・30分ごとの利用が可能であるところです。

完全マンツーマン

Tech Teacherのマンツーマン指導なら理解できない箇所は何度も分かるまで説明を受けることができます。

フルオーダーメイド指導

Tech Teacherではあらかじめ決められたカリキュラムはありません。そのためご自身の学習状況や学びたいことに合わせた指導が可能です。

一括支払いなし

一般的なプログラミングスクールの料金体制はカリキュラムに対して一括払いですが、Tech Teacherでは利用した分だけの支払いとなります。そのため、大きな費用負担がなく気軽に始めることができます。

Pythonをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

コマンドライン引数とは?

コマンドライン引数とは、Pythonでプログラムを実行する際に指定する引数のことで、プログラムに引数の情報を渡す役割を持ちます。

コマンドライン引数はプログラム実行時に動作を変更する場合によく使われます。

コマンドライン引数の渡し方

プログラム実行時に動作を変更するときによく使われるコマンドライン引数ですが、まずはコマンドライン引数を渡す方法を知っておく必要があります。
コマンドライン引数の渡し方は簡単なので、安心してくださいね。

コマンドライン引数の渡し方を解説

それではコマンドライン引数の渡し方を解説していきます。

基本的なコードは次の通りです。

$ Python ファイル名.py 引数1 引数2 引数3…

これが基本的な渡し方になります。
実際にファイル名、引数を設定すると以下のように記述します。

$ Python test.py sample1 sample2 sample3

「sample1」が引数1、「sample2」が引数2、「sample3」が引数3に対応しています。
これだけの記述でコマンドライン引数を渡せるので、簡単ですよね。

注意点として、「test.py」などのファイル名はファイルパスとして表示されるので注意してください。

次からは取得方法について学んでいくので、渡し方について分からなくなったら、ここまで戻って確認してくださいね。

コマンドライン引数の取得方法

それではコマンドライン引数の取得方法を解説していきます。

取得方法に関しては2種類あります。標準モジュールである「sys.argv」を利用する方法と、同じく標準モジュールである「argparse」を利用する方法です。

どちらの方法でもコマンドライン引数を取得できるので、ぜひご自身で実践してみてくださいね。

sys.argvモジュールの基本

最初に解説するやり方は標準モジュール「sys.argv」を使用した方法です。

流れとしては以下のようになります。

  1. モジュール「sys.argv」を呼び出す
  2. コマンドライン引数を参照する

コマンドライン引数の渡し方と同じく簡単ですよね。
それでは1つずつ詳しく見ていきましょう。

①モジュール「sys.argv」を呼び出す

1  import sys
2

まずはPythonの標準モジュールである「sys.argv」を呼び出す必要があります。

そのためには、コード上部に「import sys」と記述します。

②コマンドライン引数を参照する

次にコマンドライン引数を参照します。

import sys
print (sys.argv[0])
print (sys.argv[1])
print (sys.argv[2])

ここでは「print」を使用したコードを利用しています。

「sys.argv」の後に記述してある数字は後ほど詳しく解説するので、安心してくださいね。

sys.argvを使用したコマンドライン取得方法

ここまでは「sys.argv」を使用したコマンドライン取得方法の流れを紹介しました。

ここからは最初に解説した渡し方を踏まえて、実際のコードを解説していくので確認してみてください。
コード、コマンドライン引数はこれまで解説したものを使います。

引数なしでコードを実行した場合

コマンドライン引数を渡さない場合の実行結果は、次のようになります。

test.py

この場合はファイルパスである「test.py」のみが実行結果として出てきます。

引数を1つ渡してコードを実行した場合

コマンドライン引数を1つ渡した実行結果は次の通りです。

test.py sample1

ファイルパスである「test.py」と1つ目の引数「sample1」が実行結果となります。

引数を2つ渡してコードを実行した場合

引数を2つに増やしたときの実行結果です。

test.py sample1 sample2

ファイルパス「test.py」引数「sample1」、「sample2」が実行結果になっていますね。

引数を3つ渡してコードを実行した場合

引数を3つ渡した場合にも2つ引数を渡したときと同じ実行結果になります。

test.py sample1 sample2 sample3

このように引数を増やして渡すこともできます。

ファイルパスの後ろに半角スペースを入れて、任意のコマンドライン引数を入力すると、引数を増やすことができますよ。

argparseモジュールの基本

次にPythonの標準モジュールの1つである「argparse」を使ったコマンドライン引数取得方法の基本を解説していきます。

「argparse」を使用したコマンドライン引数の取得方法は次の4つの手順で行われます。

  1. モジュール「argparse」を呼び出す
  2. パーサーの作成
  3. コマンドライン引数を設定する
  4. コマンドライン引数の解析

1つずつ解説していくので、分からなくなったら1つ前の段階に戻って確認してみてくださいね。

①モジュール「argparse」を呼び出す

import argparse
2

まず、モジュールを呼び出すところから始めます。「import argparse」と記述すると、モジュールが呼び出せます。

②パーサーの作成

import argparse
2  parser = argparse.ArgumentParser( )

モジュールを呼び出した後に行うのが、パーサーの作成です。
パーサーは「parser = argparse.ArgumentParser ()」と記述すると作成できます。

③コマンドライン引数を設定する

import argparse
2  parser = argparse.ArgumentParser( )
3  parser.add_argument( )

次にコマンドライン引数の設定を行います。コマンドライン引数の設定は「parser.add_argument ()」と記述することで可能です。

④コマンドライン引数の解析

import argparse
2  parser = argparse.ArgumentParser( )
3  parser.add_argument( )
4  args = parser.parse_args( )
5

最後に行うのが、コマンドライン引数の解析です。手順3までに設定したコマンドライン引数の解析を行います。

記述するコードは「args = parser.parse_args ()」です。

ここまで解説した4つの手順が「argparse」を使用したコマンドライン引数取得方法の基本です。
次は実際のコードでコマンドライン取得方法を解説していくので、まず基本形を確認してみてくださいね。

argparseを使用したコマンドライン取得方法

ここまでは「argparse」を使用した基本の流れを紹介しました。

ここからは実際のコードを元にしてコマンドライン取得方法を解説していくので、分からなくなったら基本の流れを見直してみてくださいね。

①モジュール「argparse」を呼び出す

import argparse
2

モジュールの呼び出し方については先ほど説明した通りです。「argparse」でコマンドライン引数を取得する場合には必要になるので、覚えておきましょう。

②パーサーの作成

imoprt argparse
2  parser = argparse.ArgumentParser(descriotion=‘テストコードです’)
3  parser.add_argument( )
4  args = parser.parse_args( )

次に行うのがパーサーの作成でしたね。基本的には先ほど説明した方法で大丈夫ですが、ここで引数を設定できます。引数を設定すると、プログラムを実行した際に情報を表示できます。

よく使われる引数は次の通りです。

prog:プログラムの名称
usage:プログラムの利用方法の説明
description:プログラムの説明

今回のサンプルコードでは、プログラムの説明する引数「description」を記述します。

③コマンドライン引数を設定する

import argparse
2  parser = argparse.ArgumentParser(descriotion=‘テストコードです’)
3  parser.add_argument(‘arg1’)
4  parser.add_argument(‘arg2’ help=‘aaaaaa’)
5  args = parser.parse_args( )
6  

パーサー作成後は、コマンドライン引数を設定します。設定するコマンドライン引数は複数設定が可能です。
こちらもコードに引数を追加できます。追加した引数は解析を行う前に実行されます。

よく使われる引数は次の通りです。

help:引数の説明
type:プログラムの文字列を変換。指定しなければstr型として扱われる。

今回は1行目のコードには引数を設定せず、2行目のコードに引数の説明を表す「help」を記述します。

④コマンドライン引数の解析

import argparse
2  parser = argparse.ArgumentParser(descriotion=‘テストコードです’)
3  parser.add_argument(‘arg1’)
4  parser.add_argument(‘arg2’ help=‘aaaaaa’)
5  args = parser.parse_args( )
6  

最後にここまで記述したコマンドライン引数を解析します。コードについては先ほど説明した「args = parser.parse_args ()」を利用して下さい。

ここまで、先ほど紹介してきたやり方で実際のコードを記述しました。
これに出力する役割を持つ「print」を付け加えると、次のようになります。

import argparse
2  parser = argparse.ArgumentParser(descriotion=‘テストコードです’)
3  parser.add_argument(‘arg1’)
4  parser.add_argument(‘arg2’ help=‘aaaaaa’)
5  args = parser.parse_args( )
print(‘arg1=’+args.arg1)
print(‘arg2=’+args.arg2)
8

これを実行すると次の通りになります。

$ Python test.py sample1 sample2
arg1 = sample1
arg2 = sample2

流れを理解しておくことで分かりやすくなるので、それぞれの手順をひとつずつチェックしてみてくださいね。

エラーが出た場合の対処方法

ここまではコマンドライン引数を取得する方法を2つ解説しました。

2つのやり方で実際にコードを書いてみると、エラーが出てきてしまうこともあります。
ここではエラーの原因としてありがちなパターンを2つまとめたので、エラーで困ったときは確認してみてくださいね。

文字列に間違いがいないかを確認する

よくあるのがコードの書き間違いです。
アルファベットの「i」と「l」、アルファベット「o」と数字の「0」、アルファベットの「q」と数字の「9」などが間違えやすいので、注意してください。

すべてのプログラミング言語に当てはまりますが、コードの文字が1文字違うだけでプログラムは動かなくなってしまうので、コードを記述する際には確認しながら記述してみてくださいね。

Pythonがきちんとインストールできていない

Pythonを学習する前には、学習するパソコンにPythonをインストールする必要があります。インストール段階できちんとインストールできていないとエラーとなり、プログラムが実行できません。

インストールできていてもPythonのバージョンが古いものだったりすると、モジュールが対応していないこともあるので、エラーが出た場合はバージョンの確認もしてみてくださいね。

Pythonのインストール方法についてはこちらの記事で丁寧に解説しています!

【初心者向け】Pythonをインストールしよう!動作確認方法まで解説「Pythonのインストール方法がわからない」 「参考書を見ても古い情報しか書かれてないから、最新のやり方を教えてほしい」 本記事で...

「Tech Teacherで!~家庭教師ならではの3つの魅力~」

本Blogを運営するプログラミング家庭教師Tech Teacherは以下のような疑問をすべて解決できるサービスです。

・Pythonの応用をもっと学びたいが、値段が高いスクールに通うのは気が引ける

・目的別に短時間の利用ができるサービスがあったらいいな

比較対象 Tech Teacher プログラミングスクールA社
受講形態
1対1

1対3~5
担当教師
担任教師
×
講座別の講師
カリキュラム
自分専用指導

全員指導
仕事・学業との両立
可能
×
不可能
メンター制度
担任教師

異なる担当
料金
授業分だけ
×
一括払い
初期費用
入会金
22,000円
×
一括払い
528,000円
シミュレーション
(3ヶ月90分の指導を週1で行う)

164,500円
×
528,000円

以下、Tech Teacherの3つの魅力を紹介します。

Pythonをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

1.効率的な学習スタイル

一人のためだけの指導~1対1の完全個別指導~

一般的なプログラミングスクールでは大人数の対面講義や、録画講義の視聴またはオンラインでの受講がメインです。そうなると学習しながら生じた疑問をすぐに聞くことができずに、先に進んでしまい内容をうまく理解できなかったり、作業がうまく進まなかったりします。

家庭教師であれば、マンツーマンのため自分の課題にだけ焦点を当てて指導を受けられるので、1回の授業を濃い時間にすることができます。

無駄のない学習~フルオーダーメイド~

Tech Teacherは一般的なプログラミングスクールと異なり、あらかじめ決められたコースやカリキュラム設定がありません。
一般的なプログラミングスクールのカリキュラムでは、自分が本当に学習したいことを学ぶのにいくつか他の講義を受けなければなりません

Tech Teacherでは生徒様の現状の習熟度・目的・期間に応じてお悩みにダイレクトに刺さる授業を展開し、最短で目標となるゴールを目指せます。

2.自分のペースで学習できる

必要な分だけ~従量課金モデル~

Tech Teacherでは、他にはない「短時間(30分ごと)」の利用が可能です!勉強していてちょっとわからないところ、プログラミング学習のモチベーション維持など様々な疑問や悩みを解決することができます。
授業を受けた分だけ後払いする料金体系(3,960円〜 / 30分)のため、必要な期間に必要な分だけ受講できます。

好きな時間で~相性のいい教師の紹介~

Tech Teacherではあらゆるニーズに対応できる教師陣がいるため、生徒様の希望条件に最適な教師を紹介します。

Tech Teacherを受講している方のほとんどが仕事をしている社会人の方です。TechTeacherの家庭教師なら受講日時や回数を、生徒様のご都合に合わせて柔軟に調整することができ、スキルだけでなく都合の良い時間で指導できる教師を選べます。

3.確実に身につく

挫折しない~担任教師の継続指導~

オンライン・オンデマンドの講義の視聴形態だと、学習に対するモチベーションの維持が課題となり、当初の予定よりも受講期間が伸びたり、挫折したりする恐れがあります。

Tech Teacherでは、担任教師が生徒と二人三脚で学習をするため、学習が大変なときも寄り添ったサポートを受けられます。

具体的には学習計画の管理や受講目的を明確にした上で中間目標を設定し、それに向けた学習の指導をすることでモチベーションの維持を図ります。

いつでも質問できる~チャットサポート(オプション)~

担当教師は授業の時間以外に、チャットサービスを利用して、自分で学習しているときに生じた疑問をすぐに質問して解決することができます。

Javaをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

Tech Teacherへのお問い合わせ

質問のみのお問い合わせも受け付けております。

まとめ

コマンドライン引数の渡し方や取得方法について解説してきました。
コマンドラインはPythonを実行する上でよく使われるので、コマンドラインの学習でつまずいている方は参考にしてみてくださいね。

このブログでは他にもPythonについて解説しています!ぜひご覧ください。

【初心者向け】Pythonの関数について解説!引数や戻り値の使い方とは? 「Pythonの関数ってどうやって使えば良いの?」 「そもそも関数を使うメリットは何?」 本記事ではこのような疑問を...
Pythonの出力関数printの要点をつかむ!基礎〜応用まで徹底解説Pythonを学習し始めたばかりの方で、print関数についてつまずいてしまう人も少なからずいるでしょう。 「Pythonのp...
マスターしよう!Pythonでimportを使う方法について徹底解説!Pythonを学習し始めたばかりの人で「import」につまずいている人もいることでしょう。 そこで今回は import...