如何制作执行Python文件swi-prolog
的{{1}}程序并获取输出?
我读过关于score.py
和process_create/3
但我找不到太多文档
答案 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
调用以将输出写入任何其他流。