私は単純な 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 (デフォルト) であると予想しています