オプションを取得するシンプルな関数を作りました。
pythonモジュールのargparseは複雑なので。
名前:option
引数:(argv,optionname)
返り値:(argv,parameter)
(argv,parameter)=option.option(argv,'-o')
として呼び出してください。argvは、sys.argvで、parameterは'-o'で指定された直後の引数が返ります。
-o
と引数の間にはスペースが必要です。呼び出したあと、argvは、一つのオプションと引数が削除されたものになります。
同じオプションが指定されると最初が有効です。
引数がなくなるとparameterにヌルストリングを返すので、複数の同じオプションを指定する場合は、ループ処理で繰り返し呼び出してください。
実行例
$ python test.py test1 -o test2 test3
(['test.py', 'test1', 'test3'], 'test2')
違うオプションを指定した場合の実行例
$ python test.py test1 -a test2 test3
(['test.py', 'test1', '-a', 'test2', 'test3'], '')
本体
option.py
def option(l,o):
if o in l:
idx=l.index(o)
if idx+1<len(l):
if idx+2<len(l):
return l[0:idx]+l[idx+2:],l[idx+1]
else:
return l[0:idx],l[idx+1]
else:
return l[0:idx],''
return l,''
テスト
test.py
import option
import sys
print(option.option(sys.argv,'-o'))
ライセンス
誰が書いてもこうなるだろうから、Public Domain Softwareです。