4

私は、短いものと長いものの両方の解析に python getopt を使用してきましたが、うまくいきました。ここで、getopt 関数にいくつかの短い変数を追加する必要があります。複数の文字を getopt:short として使用する必要がある場合は、見栄えが良くなります。このようなことをする方法はありますか?

getopt.getopt(argv,"hf:c:d:pv:pz:","")

ここでは、getopt が「p with no args」、「v with one args」として読み取るのではなく、個別のコマンド ライン引数として pv と pz にアクセスする必要があります。引用符内で 'pv:' [pv:] を試しましたが、pv は認識されましたが、引数が読み取られません。

また、(別の注意で)同じ引数に対して複数の入力を持つことも可能です。これが非常に単純な答えである場合は、ご容赦ください。

4

1 に答える 1

2

あなたと同じものが必要なときに私が行ったドキュメントと調査の私の理解に基づいて、それを行う方法はありません. shortopts接頭辞「-」を使用すると、1 文字でのみ機能します。複数の文字についてlongoptsは、接頭辞「--」を使用する を使用する必要があります。

python3 での例:

import sys, getopt

try:
    opts, args = getopt.getopt(sys.argv[1:], 'c:d:', ['hf','pv','pz'])
except getopt.GetoptError as e:
    print(str(e))

for o, a in opts:
    print(o, ':', a)

残念ながら必須引数で入れる方法は無いと思いますがlongopts、これは手動チェックで解決できます。

詳細については、ドキュメントを参照することをお勧めします: https://docs.python.org/3.1/library/getopt.html

于 2019-09-30T20:57:44.127 に答える