问题可能是由于缓冲
stdout。您需要手动刷新它才能显示消息。在Python
3.3+中,该
flush参数:
from contextlib import contextmanagerimport time@contextmanagerdef msg(m): print(m + "... ", end='', flush=True) t_start = time.time() yield t_duration_ms = 1000 * (time.time() - t_start) print("done. [{:.0f} ms]".format(t_duration_ms))在3.3之前,您必须使用以下
flush方法
stdout:
print(m + "... ", end='')sys.stdout.flush()



