python - pyclips 的 Clipspy 挂件 Clips.ErrorStream.Read()

标签 python clips clipspy

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

使用 clipspy 执行此操作是否有意义,或者所有错误都作为异常抛出并可以使用 clips.CLIPSError 捕获吗?

最佳答案

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

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

如果您想读取 CLIPS 输出,可以使用 CLIPS 高级编程指南 中记录的路由工具来实现。 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 - pyclips 的 Clipspy 挂件 Clips.ErrorStream.Read(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52831139/

相关文章:

python - 如何获得每个单词的分数?

python:如何直接从字节字符串变量显示图像?

python - 美国格式的电话号码到 Python 中的链接

python - 在 NLTK 解析器中使用整数/日期作为终端

testing - 使用多文件设置设计一个单元测试框架,用于在 CLIPS 中为 CLIPS 规则编写自定义测试

CLIPS 使用规则递增变量

clips - 冲突解决步骤触发 CLIPS 中的两条规则

python-3.x - CLIPS Python3 CLIPSError

python - 如何在clipspy中获取事实值并将其存储在python变量中

python - 如何以编程方式在 Clipspy 中定义规则?