Будьте осторожны: здесь есть некоторые тонкости, в том числе то, собираются ли потоки на интерактивные устройства. Самым большим сюрпризом является то, что в Python 3 stderr имеет линейную буферизацию (по крайней мере, в Unix). Например, в окне терминала следующий код выводит число каждые две секунды в Python 2:
for n in range(5):
print >> sys.stderr, n, # final comma to squelch newline character
time.sleep(2)
, тогда как в Python 3 следующий код выводит все вместе по окончании цикла:
for n in range(5):
print(n, file=sys.stderr, end='') # print n to sys.stderr with no newline char
time.sleep(2)