Pythonのコマンドラインと変数引数?
コマンドライン引数
コマンドライン引数は、ユーザーがプログラムが特定の方法で動作できるようにする入力パラメータです。たとえば、追加情報を出力したり、指定されたソースからデータを読み取ったり、データを目的の形式で解釈したりできます。
Pythonコマンドライン引数
Pythonには、コマンドライン引数を読み取るための多くのオプションが用意されています。最も一般的な方法は-
- Python sys.argv
- Pythongetoptモジュール
- Pythonargparseモジュール
Pythonsysモジュール
sysモジュールは、コマンドライン引数(CLA)をリストに格納し、それを取得するには、sys.argvを使用します。これは、コマンドライン引数を文字列として読み取る簡単な方法です。
import sys print(type(sys.argv)) print('The command line arguments are: ') for i in sys.argv: print(i)
プログラムの上で実行すると、出力は次のようになります-
出力
>python CommandLineOption.py H E L L O <class 'list'> The command line arguments are: CommandLineOption.py H E L L O
Pythongetoptモジュール
python getoptモジュールは、sys.argvのような引数シーケンスを解析し、オプションと引数のペアのシーケンス、およびオプション以外の引数のシーケンスを返します。
構文
getopt.getopt(args, options, [long_options])
ここで:
-
引数 –解析する引数リスト
-
オプション –これは、スクリプトが認識したいオプション文字の文字列です。
-
Long_options –これはオプションのパラメーターであり、サポートされるべき長いオプションの名前を持つ文字列のリストです。
getoptモジュールオプションの構文には-
が含まれます- -a
- -bval
- -b val
- -noarg
- -witharg =val
- -witharg val
例を通してgetoptモジュールを理解しましょう-
短い形式のオプション
以下のプログラムは、-aと-bの2つのオプションを取り、2番目のオプションは引数を必要とします。
import getopt print (getopt.getopt(['-a', '-bval', '-c', 'val'], 'ab:c:'))
結果
([('-a', ''), ('-b', 'val'), ('-c', 'val')], [])
長い形式のオプション
プログラムには、-noargと–withargの2つのオプションがあり、シーケンスは[‘noarg’、‘witharg =’]
である必要があります。import getopt print (getopt.getopt([ '--noarg', '--witharg', 'val', '--witharg2=another' ],'',[ 'noarg', 'witharg=', 'witharg2=' ]))
結果
([('--noarg', ''), ('--witharg', 'val'), ('--witharg2', 'another')], [])
geoptモジュールの使用法を示す別の例-
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 Wrong!') sys.exit(2)を除く
結果
>python CommandLineOption.py -m 2 -h "Help" H E L L O [('-m', '2'), ('-h', '')] ['Help', 'H', 'E', 'L', 'L', 'O']
Pythonargparseモジュール
Python argparseモジュールは、コマンドライン引数を解析するための推奨される方法です。このモジュールは、位置引数、引数のデフォルト値、ヘルプメッセージ、引数のデータ型の指定など、いくつかのオプションを提供します。
以下は、argparseモジュールを理解するための簡単なプログラムです-
import argparse parser = argparse.ArgumentParser() parser.add_argument("string", help="Print the word in upper case letters") args = parser.parse_args() print(args.string.upper()) # This way argument can be manipulated.
出力
>python CommandLineOption.py "Hello, pythoN" HELLO, PYTHON
–verbosityのようなargparseモジュールを使用してオプションの引数を設定できます。
-
Pythonの名前空間と変数のスコープを説明します。
名前空間は、スコープを実装する方法です。 Pythonでは、各パッケージ、モジュール、クラス、関数、およびメソッド関数は、変数名が解決される「名前空間」を所有しています。関数、モジュール、またはパッケージが評価される(つまり、実行が開始される)と、名前空間が作成されます。それを「評価コンテキスト」と考えてください。関数などの実行が終了すると、名前空間は削除されます。変数は削除されます。さらに、名前がローカル名前空間にない場合に使用されるグローバル名前空間があります。 各変数名はローカル名前空間(関数の本体、モジュールなど)でチェックされ、次にグローバル名前空間でチェックされます。 変数は通
-
EclipseコマンドラインでPython関数を実行する方法は?
EclipseからPythonプログラムを実行するためのプラグインであるPyDevを使用できます。インストールすると、アプリケーション自体を直接実行するか、PyDevコンソール/コマンドラインから実行するかを選択できます。