On 2020-06-15 15:26, Ivan Pozdeev via Python-Dev wrote:
On 12.06.2020 11:01, Rob Cliffe via Python-Dev wrote:
If I run the following program (using Python 3.8.3 on a Windows 10 laptop):
import sys, time for i in range(1,11): sys.stdout.write('\r%d' % i) time.sleep(1)
As intended, it displays '1', replacing it at 1-second intervals with '2', '3' ... '10'.
Now run the same code inside the REPL:
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
import sys, time for i in range(1,11): ... sys.stdout.write('\r%d' % i) ... time.sleep(1) ... 12 22 32 42 52 62 72 82 92 103
It appears that the requested characters are output, *followed by* the number of characters output (which is the value returned by sys.stdout.write) and a newline. Surely this is not the intended behaviour. sys.stderr behaves the same as sys.stdout.
3.7.4 win64 works as expected (i.e. prints and overwrites only the numbers) and I see nothing relevant in https://docs.python.org/3/whatsnew/3.8.html
So I'd say this is a bug.
Python 2 does NOT exhibit this behaviour:
Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:19:08) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
import sys, time for i in range(1,11): ... sys.stdout.write('\r%d' % i) ... time.sleep(1) ... 10>>> # displays '1', '2' ... '10' as intended.
Best wishes Rob Cliffe _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/T3BVZMBL... Code of Conduct: http://python.org/psf/codeofconduct/ -- Regards, Ivan
Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/6BS3GXCS... Code of Conduct: http://python.org/psf/codeofconduct/
I just tested with 3.7.3 and got the same results as originally described. Is there something different about 3.7.4 on win7? Python 3.7.3 (default, Dec 20 2019, 18:57:59) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information.
import sys import time for i in range(1,11): ... sys.stdout.write('\r%d' % i) ... time.sleep(1) ... 12 22 32 42 52 62 72 82 92 103 (I also tested with 3.8.3 with the same results)
Joseph J