Остановить оценку выражения в консоли от автоматической печати - PullRequest
0 голосов
/ 12 февраля 2020

Я программно запускаю сценарии из другого процесса. И, ожидая выводов в потоке stdout, из моих собственных функций.

Но, как это делает консоль python (и javascript), она автоматически выводит результат моего выражения на консоль (таким образом, поток stdout).

Могу ли я остановить это, чтобы я мог выполнять выражения и использовать поток stdout только для чтения моего вывода?

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

вы можете перенаправить стандартный вывод

>>> import os
>>> import sys

>>> real_stdout = sys.stdout # saving real stdout
>>> sys.stdout = open(os.devnull, 'w') # redirect to devnull

>>> 3 * 4  # no console output
>>> print('hello world', file=real_stdout) # if you want to print something just use the real stdout
hello world

>>> sys.stdout.close()  # at the end reverse the changes
>>> sys.stdout = real_stdout
>>> 3 * 4 # now there is the console output
12
0 голосов
/ 12 февраля 2020

Итак, работая с тем, что я прочитал в комментариях к вашему вопросу, я думаю, что это то, что вы ищете.

>>> 2*2/8
0.5
>>> x = 2*2/8
>>> 

Из того, что я собрал, вы хотите отключить возвращаемые значения в интерактивном режиме. переводчик, который, насколько я знаю, невозможен.

Вы также можете взглянуть на этот ответ.

...