python Docopt 中的位置参数

Postional arguements in python Docopt

我正在编写一个简单的命令行联系人管理器。 我希望能够使用以下命令添加新联系人。
manager.py add -n NAME -p PHONENUMBER
但是每当我使用名字和姓氏添加联系人时,代码都会抛出错误。
例如。 manager.py add -n emeka onwuzulike +23464715326.
这是我的代码
Usage: manager.py add -n NANE -p PHONENUMBER

您遇到的问题是因为每个参数都在 space 字符上拆分,所以发送的是:

  • 添加
  • -n
  • 埃梅卡
  • onwuzulike
  • +23464715326

你有几个选择,我能想到的最简单的方法是不在名称中使用 space,而是使用下划线 (_) 等分隔符,然后在你的脚本中替换 _ space.

或者尝试将名称括在引号中,这取决于命令提示符,它有时会被解析为单个参数。由于实际上没有给我们任何代码,我无法测试。

为了实现这一点,你需要像这样把一个字符串作为名称参数
manager.py ad -n 'emeka onwuzulike' -p 08064715300