STINNER Victor <victor.stin...@haypocalc.com> added the comment: Le vendredi 25 mars 2011 à 00:54 +0000, David-Sarah Hopwood a écrit : > David-Sarah Hopwood <david-sa...@jacaranda.org> added the comment: > > I wrote: > $ python3 -c 'import sys; sys.stdout.write("foo"); > sys.stdout.buffer.write(b"bar"); sys.stdout.write("baz\n")' > barfoobaz > > Hmm, the behaviour actually would differ here: the proposed > implementation would print > > foobaz > bar > > (the "foobaz\n" is written by a call to WriteConsoleW and then the > "bar" gets flushed to stdout when the process exits). > > But since the naive expectation is "foobarbaz\n" and you already have > to flush after each call in order to get that, I think this change in > behaviour would be unlikely to affect correct applications.
I would not call this "naive". "foobaz\nbar" is really weird. I think that sys.stdout and sys.stdout.buffer will both have to flush after each write, or they may be desynchronized. Some developers already think that adding sys.stdout.flush() after print("Processing.. ", end='') is too hard (#11633). So I cannot imagine how they would react if they will have to do it explicitly after all print, sys.stdout.write() and sys.stdout.buffer.write(). ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue1602> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com