我的 python 程序中有一个 docopt 文档字符串,看起来像这样:
"""
program.py
Usage:
program.py (-h | --help)
program.py --version
program.py word2vec DIRECTORY [-u MODEL] [-v]
program.py word2vec DIRECTORY [-o OUTPUTMODEL] [-v]
program.py tsneplot <model> <word> [-s <dest> <plotname>]
Options:
-h --help Show this screen.
--version Show version.
-o OUTPUTMODEL Specify the name of the output model
-s <dest> <plotname> Specify the destination folder and the name of the plot to be saved (for the tsne command)
-u MODEL Specify the name of the model to update
-v Verbose output
"""
当我尝试命令时
python program.py word2vec rootfolder -o outputmodel
输出参数字典的形式为
{'--help': False,
'--version': False,
'-o': 'outputmodel',
'-s': None,
'-u': None,
'-v': False,
'<model>': None,
'<plotname>': None,
'<word>': None,
'DIRECTORY': 'rootfolder',
'tsneplot': False,
'word2vec': True}
这里的问题是,它没有给标志一个True
值,而是给标志一个应该在键中的值。换句话说,标志获取参数的值,而参数的键本身不存在。当我尝试如下所示的命令时也会发生同样的情况:-o
-o
OUTPUTMODEL
-o
OUTPUTMODEL
python program.py word2vec rootfolder -u updatedmodel
输出字典:
{'--help': False,
'--version': False,
'-o': None,
'-s': None,
'-u': 'updatedmodel',
'-v': False,
'<model>': None,
'<plotname>': None,
'<word>': None,
'DIRECTORY': 'rootfolder',
'tsneplot': False,
'word2vec': True}
'-u' 标志被分配了其参数的值,而参数MODEL
(如用法中所示)不存在。
命令中的 -s 标志也会发生类似的事情
program.py tsneplot <model> <word> [-s <dest> <plotname>]
-s
标志获取<dest>
参数的值,而字典<dest>
中不存在参数的键。
不久前它工作正常,直到我做了一些小改动。我试图查看文档字符串并阅读文档,但无法弄清楚我可能错在哪里,因为我似乎确实正确指定了选项描述。谁能帮我解决这个问题?