python

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

11月 20, 2019

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

この記事で分かること

  • pythonファイル実行時のオプション(引数)とは何かが分かる
  • オプション(引数)のpythonファイル内での処理方法が分かる

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

summary of getting parameter

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

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

例えば、下記のように、pythonファイル「test.py」を実行する時、第1引数に「Tommy」という文字列を、第2引数に「hoge」という文字列を入力することができます。

$ python test.py Tommy hoge

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

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

environment of getting parameter

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

オススメ
how to check version in python
【python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

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

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

オススメ
how to programming on rental server
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】

続きを見る

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
-

© 2021 Tommy's blog Powered by AFFINGER5