2017-08-06 112 views
4

我怎样才能让一个swi-prolog程序执行Python文件score.py并得到执行的输出python脚本获取产值?如何从SWI-序言

我读过有关process_create/3exec/1但我无法找到太多的文档

+0

什么叫“得到输出”是什么意思? – Skam

+1

有在底部的例子['process_create的文档/ 3'(http://www.swi-prolog.org/pldoc/doc_for?object=process_create/3),做大概你想要的。 – mercator

回答

2

您需要使用stdout/1stderr/1选项process_create/3

例如,下面是一个简单的断言,仅仅副本过程输出到标准 输出

 
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调用输出写入到任何其他流。