Pythonでコマンドラインの引数を解析する方法

How Parse Arguments Command Line Python



コマンドライン引数は、プログラムの実行時にプログラム内のデータを渡すために使用されます。この機能は、一般的なプログラミング言語のほとんどで利用できます。ただし、コマンドライン引数の処理は言語によって異なります。引数の値は、プログラムの実行時にプログラム名とともに指定されます。 Python言語はこの機能をサポートしています。この記事では、Pythonスクリプトでコマンドライン引数を解析する方法を示します。

を使用してコマンドライン引数を解析する sys モジュール

コマンドライン引数は、を使用してリストに格納されます。 sys モジュール。 sys.argv コマンドライン引数の値を読み取るために使用されます。コマンドライン引数の総数は、を使用してカウントできます。 len() 関数。このモジュールの使用法は、記事の一部で説明されています。







例1:引数の数と引数値の読み取り

次のPythonスクリプトを使用してファイルを作成します。ここで、コマンドライン引数の値は変数に格納されます。 argv 他の言語のように。 len() メソッドは、スクリプトの実行時に渡された引数の総数をカウントします。引数値は、スクリプトの最後に配列として出力されます。



#sysモジュールをインポートする
輸入 sys

#引数の総数を出力
印刷((「引数の合計:」 len((sysargv)。)。
印刷(('引数の値は次のとおりです:' NS((sysargv)。)。

出力:



上記のスクリプトは、4つのコマンドライン引数を使用してここで実行されます。最初の引数はスクリプト名で、その他は数値です。スクリプトの実行後、次の出力が表示されます。





例2:ループを使用して引数値を読み取る



前の例では、引数値は配列として出力されます。次のスクリプトを使用してファイルを作成し、引数変数のタイプを出力し、forループを使用して各行の各引数値を出力します。

#sysモジュールをインポートする
輸入 sys

#変数の型sys.argvを出力します
印刷((タイプ((sysargv)。)。

#各行の各コマンドライン引数を出力します
印刷(('コマンドライン引数は次のとおりです:')。
にとって sysargv
印刷(()。

出力:

上記のスクリプトは、スクリプト名に3つの引数を指定して実行されます。スクリプトの実行後、次の出力が表示されます。

getoptモジュールを使用したコマンドライン引数の解析

トッピング moduleは、オプションを使用してコマンドライン引数を解析するために使用されます。 トッピング() このモジュールのメソッドは、引数の読み取りに使用されます。このメソッドには3つの引数があります。最初の2つの引数は必須であり、最後の引数はオプションです。これらの引数の使用法を以下に示します。

引数: これには、コマンドライン引数から取得した引数が含まれています。

short_option: 引数とともに渡される任意の文字にすることができます。

long_option: これは、2つの部分からなる長いオプションを定義するために使用されます。これらはオプション名とオプション値です。

構文: getopt.getopt(args、short_option、[long_option])

例3:短いgetoptオプションを使用して引数値を読み取る

トッピング モジュールには、より多くの機能が含まれています sys モジュール。次の例は、で短いオプションを使用する方法を示しています トッピング() 方法。 argv 変数は、スクリプト名を省略してコマンドライン引数を格納します。次に、2つのオプションが定義されています トッピング() 実行時に引数とともに使用できるメソッド。エラーが発生すると、エラーメッセージが表示されます。

#getoptモジュールをインポートする
輸入 トッピング

#sysモジュールをインポートする
輸入 sys

#スクリプト名を省略して引数変数を格納する
argv= sysargv[1]

試す
#getoptの短いオプションを定義する
オプションargs= トッピングトッピング((argv 'x:y:')。

#オプションと引数を出力する
印刷((オプション)。
印刷((args)。

それ外 トッピングGetoptError

#間違ったオプションが指定された場合、エラーメッセージを出力します
印刷((「間違ったオプションが提供されています」)。

#スクリプトを終了します
sys出口((2)。

出力:

引数なしでスクリプトを実行し、引数を正しいオプションで実行し、引数を間違ったオプションで実行します。

例4:短いgetoptオプションと長いgetoptオプションを使用して引数値を読み取る

この例は、短いオプションと長いオプションの両方を引数値とともに使用する方法を示しています。それは2つの数字を追加します '-に' また '-追加' オプションとして使用され、「 -NS' また ' -サブ' 実行時にオプションとして使用されます。

#getoptモジュールをインポートする
輸入 トッピング

#sysモジュールをインポートする
輸入 sys

#スクリプト名を省略して引数変数を格納する
argv= sysargv[1]

#結果変数を初期化する
結果=0

試す

#getoptの短いオプションと長いオプションを定義する
オプションargs= トッピングトッピング((sysargv[1] 'なので' ['add =''sub ='])。

#forループを使用して各オプションを読み取る
にとってオプト怒りオプション:
#オプションが-aまたは--addの場合、合計を計算します
もしもオプト (('-に' ' - 追加')。
結果= int((argv[1])。+int((argv[2])。

#オプションが-sまたは--subの場合、サントラクションを計算します
エリフオプト (('-NS' ' - サブ')。
結果= int((argv[1])。-int((argv[2])。

印刷(('結果='結果)。

それ外 トッピングGetoptError

#間違ったオプションが指定された場合、エラーメッセージを出力します
印刷((「間違ったオプションが提供されています」)。

#スクリプトを終了します
sys出口((2)。

出力:

引数とオプションなしでスクリプトを実行し、「-a」オプション付きの引数、「-s」オプション付きの引数、および間違ったオプション付きの引数を実行します。

argparseモジュールを使用したコマンドライン引数の解析

Argparseモジュールには、コマンドライン引数を読み取るための多くのオプションが含まれています。このモジュールでは、デフォルトの引数値、データ型の引数、位置引数、ヘルプメッセージなどを提供できます。

例5:argparseを使用してコマンドライン引数を読み取る

次の例は、 argparse コマンドライン引数を読み取るためのモジュール。ここでは、コマンドライン引数を読み取るための2つのオプションが定義されています。これらは ‘-n’または ‘–name’「-e」または「-email」。 ユーザーが間違った引数を指定すると、使用法メッセージとともにエラーが表示されます。ユーザーが引数に正しいオプションを指定すると、引数の値が表示されます。ユーザーが「–help」オプションを指定してスクリプトを実行すると、スクリプトを実行するために必要なメッセージが表示されます。

#argparseモジュールをインポートする
輸入argparse

#sysモジュールをインポートする
輸入 sys

#コマンドライン引数を定義する関数を宣言します
defreadOptions((args=sysargv[1])。
パーサー =argparse。ArgumentParser((説明=「解析コマンドリスト。」)。
パーサーadd_argument(('-NS' ' - 名前' ヘルプ=「あなたの名前を入力してください。」)。
パーサーadd_argument(('-と' ' - Eメール' ヘルプ=「メールアドレスを入力してください。」)。
選択する= パーサーparse_args((args)。
戻る選択する

#関数を呼び出して引数値を読み取ります
オプション=readOptions((sysargv[1])。
印刷((オプション。名前)。
印刷((オプション。Eメール)。

出力:

間違ったオプション、正しいオプション、およびヘルプオプションを使用してスクリプトを実行します。

結論:

このチュートリアルでは、3つのPythonモジュールを使用して、コマンドライン引数を読み取るさまざまな方法について説明します。このチュートリアルが、Pythonのコマンドライン引数を使用してデータを読み取りたいコーダーに役立つことを願っています。

著者のビデオを見る: ここ