[docs] [issue11633] regression: print buffers output when end=''
Terry J. Reedy
report at bugs.python.org
Tue Mar 22 23:44:13 CET 2011
Terry J. Reedy <tjreedy at udel.edu> added the comment:
Python 3.2, WinXP, IDLE edit window, F5 Run:
'Processing ...' appears immediately, 'Done' 3 sec later.
The only difference between printtest2/3 is where 'Done' appears.
Behavior is same when pasting into interactive interpreter -- has to be since the first two prints are executed before the sleep. I presume interpreter flushes before or after printing next prompt. IDLE must do same even when running from editor even when not printing prompts.
Anatoly, I gather you ran files by some other method.
I disagree with closing this yet. Print was designed to be a simplified wrapper around sys.stdout.write (and now, any file.write). Requiring that one import sys to use print goes against that.
I have always experienced and expected Python's print to screen to be immediately visible. I thought that was pretty standard in other languages with a print-to-screen separate from general file-write. When printing to screen, efficiency is, I believe, a non-issue. Writing to files or the net is a whole different ballgame.
Amaury's idea of checking isatty seems good. Otherwise, print should gain an optional, no-default flush=True/False parameter (no default because behavior currently varies.) Until then, non-flushing *should* be documented. The current doc for print does not seem to address the issue either way.
Amaury, I though 'run from console' more or less meant 'isatty', so I am not sure I understand your comment.
assignee: -> docs at python
components: +Documentation, Library (Lib)
nosy: +docs at python, terry.reedy
resolution: invalid ->
status: closed -> open
type: -> feature request
versions: +Python 3.3
Python tracker <report at bugs.python.org>
More information about the docs