编程语言
首页 > 编程语言> > 如何从swi-prolog中执行的python脚本获取输出值

如何从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调用以将输出写入任何其他流.

标签:python,prolog,swi-prolog
来源: https://codeday.me/bug/20190701/1349344.html