如何从 swi-prolog 中执行的 python 脚本获取输出值
How to get output value from python script executed in swi-prolog
如何制作一个 swi-prolog
程序来执行 Python 文件 score.py
并获取输出?
我读过 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
调用以将输出写入任何其他流。
如何制作一个 swi-prolog
程序来执行 Python 文件 score.py
并获取输出?
我读过 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
调用以将输出写入任何其他流。