2017-11-23 10 views
-3

にはgetopt.getoptの意味を知っている必要があります。 Pythonコミュニティから誰か以下同じは、私は、Pythonに新しいですし、私は可能なドキュメントがたくさんある知っているが、私はこのことを理解することができませんはgetopt.getopt</p> <p>に捕まってしまったのpython

を理解する上で私を助けるが、私は

import getopt 

var1,var2 = getopt.getopt(['-a', '-bval', '-c', 'val','efoo', 'cfoo'], 'ab:c:') 

print var1 
print var2 

出力

[('-a', ''), ('-b', 'val'), ('-c', 'val')] 
['efoo', 'cfoo'] 

を理解しようとしていますコードスニペットであれば、私が参考になる私はこれを関連付けることができませんどのように起こったか

+0

ドキュメントには次のような記述があります。**戻り値は2つの要素で構成されています。最初は(オプション、値)のペアのリストです。 2番目はオプションリストが削除された後に残されたプログラム引数のリストです(これはargsの末尾のスライスです)。**どの部分が分かりませんか? – Barmar

+0

@Barmar:私は最初の部分を理解していません。オプション、値ペアのリストを選択する方法。私はそれが 'ab:c'に基づいて行われることを知っています。しかし、それはどういう意味ですか – Nitesh

+0

'ab:c:'は '-a'、' -b'、 '-c'で始まるオプションを探します。 – Barmar

答えて

1

パラメータab:c:は、オプション-a,-b 、および-c。文字の後の:は、そのオプションの後にパラメータが必要であることを意味します。

戻り値は2つのリストです。最初のリストには、すべてのオプションが含まれ、(option, parameter)タプルに分割されます。 2番目のリストには、オプションの後のすべての残りの引数が含まれています。

この例では、オプション-b-cの後にパラメータが必要です。したがって、最初のリストには、-bval-bオプションの後にvalパラメータが続き、('-c', 'val')があり、-cオプションの後にvalパラメータがあるため、最初のリストには('-b', 'val')が含まれています。 ('-a', '')は、パラメータを持たない-aオプションを表します。

結果の2番目の部分は、すべてのオプションの後に残っている引数なので、['efoo', 'cfoo']です。

+0

ありがとう、ちょうど質問です。なぜそれが( '-c'、 'foo')になっていないのか? – Nitesh

+0

オプションは '-'で始まり、' cfoo'には '-'はありません。 – Barmar

+0

また、すべてのオプションはオプション以外のものより先に来なければなりません。 '-'で始まらない引数になるとすぐにオプションを取得します。 – Barmar

関連する問題

 関連する問題