In [13]: for i in range(1, 5):
print '\r{0}'.format(i),
time.sleep(1)
....:
4
In [14]: for i in range(1, 5):
print '{0}\r'.format(i),
time.sleep(1)
....:
4
上面都是只在最后才打印一个 4,不能 1, 2, 3, 4 的在同一行循环显示,就像下载进度条增量改变一样,请大佬指教
1
zbl430 OP ```
for i in range(1, 5): dd = '.'*i sys.stdout.write(dd+'\r') sys.stdout.flush() time.sleep(1) ``` 这样可以了,但是 print 依旧不知如何实现 |
2
keysona 2017-09-15 15:50:47 +08:00
python3
import time for i in range(100): time.sleep(1) print('\r{}%'.format(i), end='', flush=True) |
3
John60676 2017-09-15 15:52:54 +08:00
你的意思是 print 输出时不换行吗? py3 可以 print(i,end="") ,py2 可以 print i,
|
4
keysona 2017-09-15 15:55:27 +08:00
python2 的 print 会换行的。
python3 可以取消。 |
5
JimmyMu 2017-09-15 15:56:38 +08:00
for i in range(1, 5):
print '{0} '.format(i), sys.stdout.flush() sleep(1) |
8
ltux 2017-09-15 16:05:13 +08:00
python 2.X 无法用 print 实现,即使 from __future__ improt print_function,print() 函数也不支持 flush 参数。
|
9
ltux 2017-09-15 16:06:00 +08:00
不能 flush 就无法实现。
|