Непонятное поведение подпроцесса. Open(cmd,stdout) и os.system(cmd)

Я использую внешнюю команду внутри скрипта Python, используя в первую очередь:

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

тогда я получаю стандартный вывод.

Проблема заключается в том, что результат этой внешней команды при выполнении ее внутри скрипта не совпадает, если я выполняю ее непосредственно в командной строке.

Я использую тогда 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 некоторые буферы...

0 ответов

Другие вопросы по тегам