prolog - 在 SWI-Prolog 中访问和爬取文件系统
问题描述
如何与 SWI-Prolog 中的文件系统交互?
我想做这样的事情。编写一些匹配文件的谓词(名称,或打开它们并匹配内容)。但是然后使用 Prolog 来驱动这个系统,这样我就可以对整个事情进行查询和推断。
我假设我需要提前获取有关整个文件树的数据。或者我可以通过一些递归谓词中的文件系统动态生成“爬网”。
但是我找不到任何示例或教程,这些示例或教程不仅仅是打开、关闭、读取和写入单个文件。
解决方案
最近引入了一个不错的谓词,directory_member /3。这正是您查询文件结构所需要的:
?- directory_member('/home/carlo/swipl-devel',Entry,[recursive(true)]).
Entry = '/home/carlo/swipl-devel/INSTALL' ;
Entry = '/home/carlo/swipl-devel/bench' ;
...
推荐阅读
- html - 使用 CSS 动态调整图块大小
- amazon-web-services - 我的查询第一次成功执行,但现在出现错误:由于内部错误,不支持这种类型的相关子查询模式
- python - ValueError: 目标尺寸 (torch.Size([16])) 必须与输入尺寸 (torch.Size([16, 5])) 相同
- kotlin - 如何在 Jetpack Compose for Desktop 上最好地显示弹出菜单?
- android-studio - 错误消息:Android Studio 中的“无法解析结果路径”
- python - 如何从 numpy Array Row 中删除一些文本元素
- python - 使用 Python 脚本在 GUI tkinter 中清理磁盘
- sensors - 如何将真实传感器数据导入 Carla 环境
- nginx - Nginx 使用 ip 但返回 404 和域名
- visual-studio-code - VsCode - 源代码控制显示文件更改的多个副本