繁体   English   中英

python docopt:“预期的字符串或缓冲区”

[英]python docopt: “expected string or buffer”

我正在使用 docopt 模块来处理 python 脚本选项:

from docopt import docopt
"""Usage:
  ./convert [ -h | -i | -t | -c ]

Options:
  -h          Show this help
  -i          Convert image to vertical scroll box
  -t          Convert text to vertical scroll box
  -c          Convert command list to html
"""

def main(docopt_args):
...
if __name__ == '__main__':
    args = docopt(__doc__, version='v0.1')
    main(args)

回溯(最近一次通话):文件
“/home/ajn/Converter-yaml-to-html-blocks/convert.py”,第 66 行,在
args = docopt( doc , version='v0.1') 文件“/usr/local/lib/python3.4/dist-packages/docopt.py”,第 558 行,在 docopt 中
DocoptExit.usage = printable_usage(doc) 文件“/usr/local/lib/python3.4/dist-packages/docopt.py”,第 466 行,在 printable_usage 中
usage_split = re.split(r'([Uu][Ss][Aa][Gg][Ee]:)', doc) 文件“/usr/lib/python3.4/re.py”,第 196 行,在分裂
返回 _compile(pattern, flags).split(string, maxsplit) TypeError: 预期的字符串或缓冲区

任何提示?

将文档字符串移动到文件的开头(在导入行之前)

对于任何困惑的人,在使用docopt您应该在from docopt import docopt之前编写一个文档字符串。 参数的选项是通过自动解析该字符串生成的。 在这个问题中,文档字符串是:

"""Usage:
  ./convert [ -h | -i | -t | -c ]

Options:
  -h          Show this help
  -i          Convert image to vertical scroll box
  -t          Convert text to vertical scroll box
  -c          Convert command list to html
"""

并且应该放在导入之前。

此处的项目 README 中查看更多示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM