我首先在python脚本中使用外部命令:
subprocess.Popen(cmd, stdout=subprocess.PIPE)
然后我得到标准输出。
问题在于,如果我直接在命令行中执行此外部命令,则在脚本内部执行该命令时的结果将不同。
然后我使用os.system(cmd)
,但是同样的问题。
Python中的此指令是否使用某些缓冲区?
如何解释两个结果(命令行和脚本内部)之间的区别。
安装后,我正在使用此工具作为来自comman行的本地命令:
https://potassco.org/clingo/run/
我使用一些文件作为输入:
edge("s1","s3").
edge("s2","s4").
edge("s3","s4").
path(X,Y) :- edge(X,Y). % x and y are strings
path(X,Z) :- path(X,Y), path(Y,Z).
:- path(X,Y), path(Y,X). %cyclic path.
要做到这一点,该工具将生成如下模型:
edge("s1","s3") edge("s2","s4") edge("s3","s4") path("s1","s3") path("s2","s4") path("s3","s4") path("s1","s4")
SATISFIABLE
当我在python脚本中调用命令时,它不会计算所有模型,但会生成不完整的模型。这个问题仅出现在需要计算大型模型的大型示例中。这就是为什么我问这个命令:subprocess.Popen和os.system是否使用一些缓冲区...