Python コマンドライン引数
Python は提供していますgetoptコマンドライン引数を取得するためのモジュールです。
$ python test.py arg1 arg2 arg3
Python では次のものも使用できますsysのsys.argvコマンドライン引数を取得するために:
sys.argv はコマンドライン引数のリストです。
len(sys.argv) はコマンドライン引数の個数です。
注:sys.argv
例
test.py ファイルのコードは次のとおりです:
例
# -*- coding: UTF-8 -*-
import sys
print '引数の数は:', len(sys.argv), '个参数。'
print '参数列表:', str(sys.argv)
上記のコードを実行すると、出力結果は次のとおりです:
$ python test.py arg1 arg2 arg3 参数个数为: 4 个参数。 参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
getoptモジュール
getoptモジュールは、コマンドライン引数を専門に処理するモジュールで、コマンドラインオプションと引数、つまり sys.argv を取得するために使用されます。コマンドラインオプションにより、プログラムの引数はより柔軟になります。短いオプションモードをサポートします。-および長いオプションモード--。
このモジュールは、コマンドライン引数を解析するための2つのメソッドと1つの例外処理を提供します。
getopt.getopt メソッド
getopt.getopt メソッドはコマンドライン引数リストを解析するために使用され、構文は次のとおりです:
getopt.getopt(args, options[, long_options])
メソッドパラメータの説明:
args: 解析するコマンドライン引数リストです。
options: 文字列の形式で定義されます。options後のコロン:そのオプションを設定する場合は追加パラメータが必要であり、それ以外の場合はパラメータが追加されないことを示します。
long_options: リストの形式で定義されます。long_options後の等号=そのオプションに追加パラメータが必要であることを示し、等号がない場合はそのオプションにパラメータが追加されないことを示します。
このメソッドの戻り値は2つの要素で構成されています。1つ目は(option, value)タプルのリストです。2つ目は、パラメータリストであり、持たないものを含みます。- 或 --のパラメータです。
もう1つのメソッドは getopt.gnu_getopt ですが、ここでは詳しく説明しません。
Exception getopt.GetoptError
この例外は、パラメータリストが見つからない場合、またはオプションに必要なパラメータが空の場合に発生します。
例外のパラメータは、エラーの理由を示す文字列です。属性msgとoptは関連オプションのエラー情報です。
例
次のようなスクリプトを作成するとします。コマンドラインからスクリプトファイルに2つのファイル名を渡すことができ、同時に別のオプションを使用してスクリプトの使用方法を確認できます。スクリプトの使用方法は次のとおりです:
usage: test.py -i <inputfile> -o <outputfile>
test.py ファイルのコードは次のとおりです:
例
# -*- coding: UTF-8 -*-
import sys, getopt
def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print 'test.py -i <inputfile> -o <outputfile>'
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print 'test.py -i <inputfile> -o <outputfile>'
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print '入力ファイルは:', inputfile
print '出力ファイルは:', outputfile
if __name__ == "__main__":
main(sys.argv[1:])
上記のコードを実行すると、出力結果は次のとおりです:
$ python test.py -h usage: test.py -i <inputfile> -o <outputfile> $ python test.py -i inputfile -o outputfile 输入的文件为: inputfile 输出的文件为: outputfileその他の拡張
Python 基本構文