1

私は単純な python (v2.7) スクリプト ( test.py )を持っています

#!/usr/bin/python

import sys
from optparse import OptionParser

def main():
    parser = OptionParser()
    parser.add_option("--files", dest="files", 
                      metavar="FILES", default=None, 
                      help="A file pattern matching ottcall logs.")
    (options, args) = parser.parse_args()


    print "FILES_PATTERN %s" % options.files

    if not options.files:
        parser.error("Files_pattern option is mandatory - Abort execution.")

    return 0

if __name__ == "__main__":
    sys.exit(main())

ユーザーはファイル パターンまたはファイル名を指定する必要があります

オプションが見つからない場合、コマンド ラインでスクリプトを実行すると、次のエラーが返されます。

python test.py
FILES_PATTERN None
Usage: test.py [options]

test.py: error: Files_pattern option is mandatory - Abort execution.

オプション ファイルに文字が欠けている場合(--files ではなく --fil):

python test.py --fil "a_pattern_for_files"
FILES_PATTERN a_pattern_for_files

次のようなエラーが発生するはずだと思います

python test.py --fl "a_pattern_for_files"
Usage: test.py [options]

test.py: error: no such option: --fl

正しい引数 --files の代わりに--fil使用すると、OptionParserからエラーが発生しないのはなぜですか?

エラーが発生しないだけでなく、変数ファイルに値a_pattern_for_files (出力されます) が格納されます。

コマンドラインに--filesが存在しない限り、引数ファイルの値は None (デフォルト) であると予想しています

4

1 に答える 1