У меня есть сценарий питона, который выглядит примерно так:Использования тройника, чтобы получить в реальное время операторов печати из питона
for item in collection:
print "what up"
#do complicated stuff that takes a long time.
В Баше, я запускаю этот скрипт, выполнив следующие действия:
$ python my.py | tee my_file.txt
Однако , все, что я вижу в bash, - пустая строка, пока программа не завершится. Затем все печатные заявления появляются на одном.
Является ли это ожидаемой работой тройника? Могу ли я использовать тройник для просмотра вывода в режиме реального времени?
Это будет проблема с питоном. Это преднамеренно. Он просто обнаруживает, что вывод не идет на терминал, поэтому он буферизуется. Вам нужно отключить буферизацию. Как это сделать, вероятно, лучше подходит для stackexchange.com. – Patrick
Может быть, это поможет: http://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe – Ketan
наверху "import import sys '", а на строке с отступом под оператором печати выполните команду '' sys.stdout.flush() '" – Anthon