Я столкнулся с несколько необычной ситуацией. Я пытаюсь использовать script интерактивную консоль (для обучения/тестирования), и я попробовал следующее:
$ python > /dev/null
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print 3
>>>
3
не печатается, поэтому ясно, что все остальное было на stderr
. Все идет нормально. Но затем мы перенаправляем stderr
:
$ python 2> /dev/null
>>> print 3
3
>>>
Как можно распечатать приглашение в обоих случаях?
EDIT: перенаправление как stdout
, так и stderr
не приводит к тому, что ничего не печатается. Таким образом, Python явно "выбирает" один из stdout
или stderr
. Означает ли это, что это произошло? Я не мог понять, как это делается в исходном коде Python.