pythonでコマンドライン引数を受け取る方法

  python

プログラムを実行する際になにがしかのパラメータを受け取ることはよくあります。逆に外部から何も情報を受け取らずに処理が行われることはまれといえます。

人間とプログラムのインターフェイスを果たす物にはいくつかありますが、実行時のパラメータは最も基本的なインターフェイスとなります。

ここではpythonのプログラムを実行する際にやり取りされる実行時の引数つの受け渡しについて説明します。

pythonをコマンドラインから実行しその際に引数を受け取って処理を行おうとする場合、実行時の日キスを受け取る方法にはいくつかありますが、ここではpythonの標準ライブラリであるargparseを使った例を示します。

何はともあれサンプル

まずは、サンプルコードを示します。

 

実行結果

ここでは -h オプションをつけて実行しています。-h をつけて実行すると説明が表示されます。

このサンプルでは3つの引数をやる取りすることができます。1つずつ説明していきます。

引数について

必須引数

このサンプルでは input が該当します。

ソースコード上ではこのように記述しています。”input”という引数を”input file name”という解説をつけて追加するという意味になります。

このように記述すると実行時に与えられた引数を args.inputに格納します。

必須引数なので、指定しないとエラーになります。

オプション引数

このサンプル例では -o もしくは –output と、 -p もしくは –paramが該当します。

実行時のオプションとして -o もしくは –output に続いて指定したものが args.outputに格納されます。-oを指定しても、–outputを指定しても、格納先は args.outputになります。-o が省略形、 –outputがフルネームと思えばよいでしょう。定義の際に -o の方は省略できますが、 –outputの方は省略するとエラーになりますので注意が必要です。このサンプルでは実行時に-o もしくは –output をしていしない場合は defalutに指定したものが args.outputに格納されます。

こちらの例では -pもしくは –param に続いて指定したものが args.paramに格納されます。先ほどの –outputの場合との違いは type指定があることです。これによって args.paramはint型を取ることになります。 typeの指定がない場合は文字列として格納されます。

まとめ

ここでは、プログラムと人間とのインターフェイスの1つである実行日引数について説明しました。ここで上げた例では位置引数とオプション引数、デフォルト引数、数値引数を説明しました。このほかにもバリエーションがたくさんありますが、さしあたりここで説明したものを用いればたいていのことができると思います。

より詳しい説明が必要な方は公式のドキュメントを参考になさるといいでしょう。

https://docs.python.jp/3/howto/argparse.html

最後までお読みいただきありがとうございました。