0

我首先在 python 脚本中使用外部命令:

subprocess.Popen(cmd, stdout=subprocess.PIPE)

然后我得到标准输出。

问题是如果我直接在命令行中执行这个外部命令,在脚本内部执行它时的结果是不一样的。

我用 then os.system(cmd),但同样的问题。

python中的这条指令是否使用了一些缓冲区?

我如何解释两个结果之间的区别(命令行和脚本内部)。

安装后,我将此工具用作命令行中的本地命令:

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 使用一些缓冲区......

4

0 回答 0