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

How to get output value from python script executed in swi-prolog

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

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

您需要使用 process_create/3stdout/1stderr/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 调用以将输出写入任何其他流。