Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 调用prolog和打印prolog输出的Python程序_Python 2.7_Prolog_Ffi - Fatal编程技术网

Python 2.7 调用prolog和打印prolog输出的Python程序

Python 2.7 调用prolog和打印prolog输出的Python程序,python-2.7,prolog,ffi,Python 2.7,Prolog,Ffi,我刚开始使用prolog,我有一个python程序,它使用os.system(prolog_命令)调用prolog并得到一个结果(true或false),但我希望我的程序在控制台中显示相同的结果(prolog编写的行)。 有人能帮我吗 提前谢谢。我尝试了这个简单的方法: foo.pl的内容: foo :- write('hello, world'), nl. 然后在python中: >>> import commands >>> commands.getou

我刚开始使用prolog,我有一个python程序,它使用os.system(prolog_命令)调用prolog并得到一个结果(true或false),但我希望我的程序在控制台中显示相同的结果(prolog编写的行)。 有人能帮我吗


提前谢谢。

我尝试了这个简单的方法:

foo.pl
的内容:

foo :- write('hello, world'), nl.
然后在python中:

>>> import commands
>>> commands.getoutput('echo "foo." | swipl -q -f foo.pl')
'hello, world\ntrue.\n\n'
>>> x = commands.getoutput('echo "foo." | swipl -q -f foo.pl')
>>> x
'hello, world\ntrue.\n\n'
>>>

您的
prolog\u命令
到底是什么样子的?它是如何产生输出的?它是通过写之类的方式提供输出还是通过变量实例化提供输出?输出是通过写生成的。我在python程序中使用shellcommand=“swipl-q-s init.pl-f”+logicprogram调用prolog,然后执行os.system(shellcommand)但是他只打开了prolog shell,然后我想用python程序将查询写到prolog中,但是我不能….
os.system(…)
返回执行的命令的退出代码,而不是标准输出。请参阅我关于备选方案的回答。