オペレーティング システムのコマンド ライン シェルでプログラム名の後に指定される引数は、 コマンドライン引数 。 Python では、この種の引数を処理するさまざまな方法が提供されています。最も一般的なのは次の 3 つです。
sys.argvの使用
sys モジュールは、Python ランタイム環境のさまざまな部分を操作するために使用される関数と変数を提供します。このモジュールは、インタープリターによって使用または維持されるいくつかの変数、およびインタープリターと強力に対話する関数へのアクセスを提供します。
このような変数の 1 つは、単純なリスト構造である sys.argv です。その主な目的は次のとおりです。
- コマンドライン引数のリストです。
- len(sys.argv) はコマンド ライン引数の数を提供します。
- sys.argv[0] は、現在の Python スクリプトの名前です。
例: 2 つの数値を加算するための Python スクリプトがあり、数値がコマンドライン引数として渡されたとします。
Python3
# Python program to demonstrate> # command line arguments> import> sys> # total arguments> n> => len> (sys.argv)> print> (> 'Total arguments passed:'> , n)> # Arguments passed> print> (> '
Name of Python script:'> , sys.argv[> 0> ])> print> (> '
Arguments passed:'> , end> => ' '> )> for> i> in> range> (> 1> , n):> > print> (sys.argv[i], end> => ' '> )> > # Addition of numbers> Sum> => 0> # Using argparse module> for> i> in> range> (> 1> , n):> > Sum> +> => int> (sys.argv[i])> > print> (> '
Result:'> ,> Sum> )> |
>
>
出力:
getopt モジュールの使用
パイソン getopt モジュール これは C の getopt() 関数に似ています。sys モジュールとは異なり、getopt モジュールはパラメータ検証によって入力文字列の分離を拡張します。値の割り当てを含む、短いオプションと長いオプションの両方が許可されます。ただし、このモジュールでは入力データを適切に処理するために sys モジュールを使用する必要があります。 getopt モジュールを使用するには、コマンドライン引数のリストから最初の要素を削除する必要があります。
構文: getopt.getopt(引数, オプション, [long_options])
パラメーター:
引数: 渡される引数のリスト。
オプション: スクリプトが認識したいオプション文字の文字列。引数が必要なオプションの後にはコロン (:) を付ける必要があります。
長いオプション: 長いオプションの名前を含む文字列のリスト。引数が必要なオプションの後には等号 (=) を付ける必要があります。
戻り値の型: 2 つの要素で構成される値を返します。最初の要素は (オプション、値) ペアのリストです。 2 番目は、オプション リストが削除された後に残ったプログラム引数のリストです。
Javaは文字列にキャストします
例:
Python3
# Python program to demonstrate> # command line arguments> import> getopt, sys> # Remove 1st argument from the> # list of command line arguments> argumentList> => sys.argv[> 1> :]> # Options> options> => 'hmo:'> # Long options> long_options> => [> 'Help'> ,> 'My_file'> ,> 'Output='> ]> try> :> > # Parsing argument> > arguments, values> => getopt.getopt(argumentList, options, long_options)> > > # checking each argument> > for> currentArgument, currentValue> in> arguments:> > if> currentArgument> in> (> '-h'> ,> '--Help'> ):> > print> (> 'Displaying Help'> )> > > elif> currentArgument> in> (> '-m'> ,> '--My_file'> ):> > print> (> 'Displaying file_name:'> , sys.argv[> 0> ])> > > elif> currentArgument> in> (> '-o'> ,> '--Output'> ):> > print> ((> 'Enabling special output mode (% s)'> )> %> (currentValue))> > except> getopt.error as err:> > # output error, and return with an error code> > print> (> str> (err))> |
>
>
出力:
argparseモジュールの使用
argparse モジュールを使用することは、位置引数、引数のデフォルト値、ヘルプ メッセージ、引数のデータ型の指定などの多くのオプションを提供するため、上記の 2 つのオプションよりも優れたオプションです。
注記: デフォルトのオプション引数として、-h とその長いバージョン -help が含まれます。
このデバイス上の非表示のアプリ
例 1: argparse モジュールの基本的な使用法。
Python3
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser> => argparse.ArgumentParser()> parser.parse_args()> |
>
>
出力:
例 2: ヘルプメッセージに説明を追加します。
Python3
# Python program to demonstrate> # command line arguments> import> argparse> msg> => 'Adding description'> # Initialize parser> parser> => argparse.ArgumentParser(description> => msg)> parser.parse_args()> |
>
c 乱数
>
出力:
例 3: オプションの値の定義
Python3
# Python program to demonstrate> # command line arguments> import> argparse> # Initialize parser> parser> => argparse.ArgumentParser()> # Adding optional argument> parser.add_argument(> '-o'> ,> '--Output'> ,> help> => 'Show Output'> )> # Read arguments from command line> args> => parser.parse_args()> if> args.Output:> > print> (> 'Displaying Output as: % s'> %> args.Output)> |
>
>
出力: