python

【python】引数を取得する方法【→プログラム初心者向け】

how to get parameter on python
プログラム女子
プログラム女子

使う人が直接入力するような情報をプラグラムに入力するにはどうしたらいいのかな...

もし、入力するその時まで分からない情報や、ユーザーしか知らない情報をpythonプログラムに渡すには、「コマンドライン引数」というのが使えるよ。
今回はこのコマンドライン引数の使い方を説明するね。

Tommy
Tommy

Pythonで引数を取得する方法の概要

summary of getting parameter

この記事では、pythonプログラムをコマンドラインから実行した場合に、コマンドライン引数の値をpythonファイル内部のプログラムに反映する方法を説明します。

pythonファイルを実行する時に、同時に引数(パラメータ)を渡し、内部の処理で、渡されたパラメータを使うといった処理ができるようになります。

これによって、pythonで予めプログラムできないものを処理することができます。

例えば、pythonファイルを実行するユーザーが複数人数居る場合に、ユーザーごとのユーザー名やパスワードは、ユーザーによって変わります。

pythonファイル実行時にどのユーザーがpythonファイルを実行しているかが分かるので、pythonプログラム処理内部でユーザー名やパスワードを使った処理ができるようになります。

Pythonで引数を取得する方法の前提の環境

environment of getting parameter

Pythonで引数を使った実行方法の前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

【python】バージョン確認の方法【→プログラミング初心者向け】

レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

レンタルサーバでプログラミングする方法【→レンタルサーバでできる!】

Pythonで引数を取得する方法のサンプルプログラム

sample program of getting parameter

ライブラリインポート

ここでは、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 NameUser Pswdの値が表示されていることが分かります。

$ python test.py Tommy hoge
User Name: Tommy
User Pswd: hoge

実行の結果【エラー処理】

下の結果は、引数なしでpythonファイルtest.pyを実行した際の結果を表しています。

引数が2つ未満だとエラー処理(入力が間違っているメッセージを表示)にしているので、エラー処理されていることが分かります。

$ python test.py
Incorrect input.

-python
-, ,

Copyright© Tommy's blog , 2020 All Rights Reserved Powered by AFFINGER5.