我的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}
这里的问题是,它没有给-o
标志一个True
值,而是给-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>
参数的键在字典中不存在。
在我做了一些小的改变之前,它是正常工作的。我试图查看文档字符串和阅读文档,但无法找出我可能是错的,因为我似乎已经正确指定了选项描述。有人能帮我解决这个问题吗?
您只是忘记了DIRECTORY
周围的<...>
标志。试试这个:
"""
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 $
-u MODEL Specify the name of the model to update
-v Verbose output
"""