

Pythonで引数を取得する方法の概要
この記事では、pythonプログラムをコマンドラインから実行した場合に、コマンドライン引数の値をpythonファイル内部のプログラムに反映する方法を説明します。
pythonファイルを実行する時に、同時に引数(パラメータ)を渡し、内部の処理で、渡されたパラメータを使うといった処理ができるようになります。
これによって、pythonで予めプログラムできないものを処理することができます。
例えば、pythonファイルを実行するユーザーが複数人数居る場合に、ユーザーごとのユーザー名やパスワードは、ユーザーによって変わります。
pythonファイル実行時にどのユーザーがpythonファイルを実行しているかが分かるので、pythonプログラム処理内部でユーザー名やパスワードを使った処理ができるようになります。
Pythonで引数を取得する方法の前提の環境
Pythonで引数を使った実行方法の前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。
-
-
【python】バージョン確認の方法【→プログラミング初心者向け】
続きを見る
レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。
もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。
-
-
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】
続きを見る
Pythonで引数を取得する方法のサンプルプログラム
ライブラリインポート
ここでは、pythonファイル実行時に指定された引数の値を取得する為に、sysライブラリをインポートしています。
import sys
引数入力を取得する関数の定義
今回のサンプルプログラムは、pythonファイルの実行時にユーザーのユーザー名を第一引数に、パスワードを第二引数に指定されることを期待したものにします。
sysライブラリのargvと呼ばれるメソッドで引数全体argsを取得し、その引数全体はリストで渡される為、argvの2番目の要素をユーザー名として取得、3番目の要素をパスワードとして取得します。
また、このリストの1番目にはpythonのファイル名が入っています。
def get_input_param():
user = ''
passwd = ''
result = False
# 引数の取得
args = sys.argv
# 引数の個数が足りない場合
if 2 >= len(args):
result = False
else:
result = True
user = args[1]
passwd = args[2]
return user,passwd,result
定義した関数の実行
ここでは、先程定義した関数の実行処理を説明します。
まず、引数で指定された値をを取得するメソッドget_input_param()を呼び出します。
get_input_param()の結果がFalseだった場合は、入力が異常である旨のメッセージを表示し、入力が正常であれば、ユーザー名とパスワードを表示するというプログラムです。
if __name__ == '__main__':
username, password, result = get_input_param()
if False == result:
print("Incorrect input.")
else:
print("User Name: " + username)
print("User Pswd: " + password)
実行の結果【正常処理】
下の結果は、pythonファイルtest.pyを実行した際に、第一引数にユーザー名Tommyを、第二引数にパスワードhogeを入れて、実行した結果を表しています。
内部の処理で引数で取得されたユーザー名とパスワードをprint文で表示しているので、結果としてUser NameとUser Pswdの値が表示されていることが分かります。
$ python test.py Tommy hoge
User Name: Tommy
User Pswd: hoge
実行の結果【エラー処理】
下の結果は、引数なしでpythonファイルtest.pyを実行した際の結果を表しています。
引数が2つ未満だとエラー処理(入力が間違っているメッセージを表示)にしているので、エラー処理されていることが分かります。
$ python test.py
Incorrect input.