2017-08-06 140 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調用輸出寫入到任何其他流。