У меня есть простой скрипт на 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.
Если в файле параметров отсутствуют некоторые буквы (--fil вместо --files):
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
Почему я не получаю ошибку от OptionParser , когда я использую - fil вместо правильного аргумента - файлы ?
Не только я не получаю ошибку, но переменные файлы хранят значение: a_pattern_for_files (которое печатается).
Я ожидаю, что файлы аргументов будут иметь значение: Нет (по умолчанию), если только в командной строке - файлы не существуют