如何从swi-prolog中执行的python脚本获取输出值

如何制作执行Python文件score.py的swi-prolog程序并获取输出?

我读过有关process_create / 3和exec / 1但我找不到太多文档

解决方法:

您需要使用process_create / 3的stdout / 1和stderr / 1选项.

例如,这是一个简单的谓词,它只是将流程输出复制到标准输出:

output_from_process(Exec, Args) :-
        process_create(Exec, Args, [stdout(pipe(Stream)),
                                    stderr(pipe(Stream))]),
        copy_stream_data(Stream, current_output),
        % the process may terminate with any exit code.
        catch(close(Stream), error(process_error(_,exit(_)), _), true).

您可以调整copy_stream_data / 2调用以将输出写入任何其他流.

上一篇:用C或C实现Prolog


下一篇:SWI-Prolog语义Web库和Python接口