我有一个简单的 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
当我使用--fil而不是正确的参数--files时,为什么我不会从OptionParser收到错误?
不仅我没有收到错误,而且变量文件存储了值:a_pattern_for_files(已打印)。
我期望参数文件具有值:无(默认),除非在命令行中--files存在