属性リスト内の場所に基づいて複数の引数属性を割り当てようとしています。例を挙げよう。以上のことから複数のargparse属性に変数を割り当てる
import argparse
import sys
def args_options:
parser = argparse.ArgumentParser()
parser.add_argument('-s', help='-s argument help', nargs=3)
parser.add_argument('-k', help='-k argument help', nargs=3)
arguments = parser.parse_args()
return arguments
def assign_arg():
args = args_options()
if args.s or args.k:
variable1 = args[1] # this is where I'm stuck as I know this won't work
variable2 = args[2] #^
、私はどちらかarg.sまたはarg.kが真であれば、そのため、どちらの引数の一覧の2番目および3番目の属性が変数に割り当てられているかどうかを確認しようとしています。
これはpythonで可能ですか?あるいは私はする必要があります。
if arg.s:
variable1 = arg.s[1]
variable2 = arg.s[2]
elif arg.k:
variable1 = arg.k[1]
variable2 = arg.k[2]
上記はうまくいくでしょうが、コードが長くなるように多くのオプション/属性があります。複数の引数オプションのリスト内の属性を見つけて変数に割り当てることで、より効率的に行う方法があるかどうかを尋ねたいと思っていました。
あなたのオプションは相互に排他的なグループではなく、 '-s'と' -k'の両方が指定された場合はどうなりますか? –
'-s'や' -k'の引数が同じように扱われているようですが、s/kをフラグにして引数を別々に扱うほうが意味がありませんか? –