我试图通过在同一行上每秒打印一个点来创建类似进度的东西.像"钓鱼......"之类的东西.这是我用过的:
import time
print('Fishing', end='')
for i in range(5):
time.sleep(1)
print('.', end='')
Run Code Online (Sandbox Code Playgroud)
但它会等待5秒钟并立即打印Fishing.....所有内容.但是当我不使用时end='',它每秒打印一次点,但是在这样的单独行上
Fishing.
.
.
.
.
Run Code Online (Sandbox Code Playgroud)
print这样做?print这样做?这print与您的终端关系不大,而且与您的终端有关.出于性能原因,每次有换行符时,文本只会被"刷新",而不是一次只有一个字符.
通过每次打印时手动"刷新"标准输出:
import time
import sys
print('Fishing', end='')
sys.stdout.flush()
for i in range(5):
time.sleep(1)
print('.', end='', flush=True) # another way
Run Code Online (Sandbox Code Playgroud)
如果您一直需要这个,您可以定义一个单独的冲洗打印功能:
from functools import partial
myprint = partial(print, end='', flush=True)
myprint('Fishing')
for i in range(5):
time.sleep(1)
myprint('.')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
345 次 |
| 最近记录: |