是否可以使用clipspy从剪辑中读取ErrorStream?
使用pyclips,它的工作方式如下:clips.ErrorStream.Read()

clipspy这样做是否有意义,还是将所有错误都作为异常抛出并可以用clips.CLIPSError捕获?

最佳答案

clipspy检测到错误时,它将引发CLIPSError异常,将werror的输出嵌入为消息。因此,您基本上可以依靠它。

但是,由于CLIPS C API并不完全一致,因此您可能会发现一些极端情况。最常见的是,CLIPSError异常可能不包含任何错误消息,因为CLIPS在出现错误的情况下并不总是打印消息。

如果要读取CLIPS输出,则可以使用CLIPS Advanced Programming Guide中记录的路由功能来完成。 clipspy router APIs非常接近C语言。

您也可以使用LoggingRouter通过Python日志管理CLIPS输出。当您要将CLIPS集成到python服务中时,这很方便。

import clips
import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s')

env = clips.Environment()
router = clips.LoggingRouter()

router.add_to_environment(env)

env.eval('(printout t "Hello World!" crlf)')


输出量

2018-10-16 17:29:01,829 - INFO - Hello World!

关于python - 用于cliclips clips.ErrorStream.Read()的clipspy吊坠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52831139/

10-11 23:13
查看更多