Python 2.7 调用prolog和打印prolog输出的Python程序
我刚开始使用prolog,我有一个python程序,它使用os.system(prolog_命令)调用prolog并得到一个结果(true或false),但我希望我的程序在控制台中显示相同的结果(prolog编写的行)。 有人能帮我吗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
提前谢谢。我尝试了这个简单的方法:
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(…)
返回执行的命令的退出代码,而不是标准输出。请参阅我关于备选方案的回答。