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

时间:2017-08-06 15:36:57

标签: python prolog swi-prolog

如何制作执行Python文件swi-prolog的{​​{1}}程序并获取输出?

我读过关于score.pyprocess_create/3但我找不到太多文档

1 个答案:

答案 0 :(得分:2)

您需要使用stdout/1的{​​{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).

您可以调整process_create/3调用以将输出写入任何其他流。