Pythonコマンドライン引数

Pythonコマンドライン引数は、スクリプトを実行する際に渡される入力パラメータです。ほぼすべてのプログラミング言語はコマンドライン引数のサポートを提供しています。そして、プログラムの特定のオプションを設定するためのコマンドラインオプションもあります。

Pythonコマンドライン引数

Pythonのコマンドライン引数を読み取るための多くのオプションがあります。最も一般的なものは次の3つです:

  1. Python sys.argv
  2. Python getoptモジュール
  3. Python argparseモジュール

Pythonコマンドライン引数を読み取り、使用する方法を学ぶためのシンプルなプログラムを見てみましょう。

Python sysモジュール

Python sysモジュールはコマンドライン引数をリストに保存し、sys.argvを使用してアクセスできます。これはコマンドライン引数を文字列として読み取るための非常に便利でシンプルな方法です。Python sysモジュールを使用してコマンドライン引数を読み取り、表示する簡単な例を見てみましょう。

import sys

print(type(sys.argv))
print('The command line arguments are:')
for i in sys.argv:
    print(i)

Below image illustrates the output of a sample run of above program.
そのプログラムのサンプルランの出力を以下の画像に示します。

There are many other useful functions in sys module, read them in detail at python sys module.

Python getopt module

Python getopt moduleは、C getopt() 関数と非常に似ており、コマンドラインパラメータを解析するために使用されます。Python getoptモジュールは、ユーザーにいくつかのオプションを入力してもらいたいコマンドライン引数の解析に役立ちます。これを理解するために、簡単な例を見てみましょう。

import getopt
import sys

argv = sys.argv[1:]
try:
    opts, args = getopt.getopt(argv, 'hm:d', ['help', 'my_file='])
    print(opts)
    print(args)
except getopt.GetoptError:
    # メッセージを表示するか、何か役立つことを行う
    print('Something went wrong!')
    sys.exit(2)

上記の例は非常にシンプルですが、さまざまなことを簡単に拡張できます。たとえば、helpオプションが渡された場合、ユーザーフレンドリーなメッセージを表示して終了します。ここでgetoptモジュールはオプションの値を自動的に解析し、マッピングします。以下の画像はサンプルランを示しています。 詳細については、python getopt moduleを読んでください。

Python argparse module

Python argparseモジュールは、コマンドライン引数を解析するための推奨される方法です。位置引数、引数のデフォルト値、ヘルプメッセージ、引数のデータ型の指定など、多くのオプションを提供します。非常に単純な形式では、以下のように使用できます。

import argparse

parser = argparse.ArgumentParser()
parser.parse_args()

以下は、上記スクリプトのクイック実行の出力です。Python argparseモジュールには多くの機能がありますので、詳細はPython argparseチュートリアルで読んで理解してください。これがPythonでコマンドライン引数を読み取り解析するための異なるオプションです。特定の要件に合ったものを選択して使用してください。参考文献:

Source:
https://www.digitalocean.com/community/tutorials/python-command-line-arguments