引子
在开发fastnlp过程遇到一个需求:嵌套使用tdqm进度条,能够在任意位置使用print而不发生冲突。为解决print打印内容乱序的问题,我们将内置的write函数置换为tqdm.write函数。
import sys
import time
import contextlib
from tqdm import tqdm
class DummyFile:
def __init__(self, file):
if file is None:
file = sys.stderr
self.file = file
def write(self, x):
if len(x.rstrip()) > 0:
tqdm.write(str(x), file=self.file)
@contextlib.contextmanager
def redirect_stdout(file=None):
if file is None:
file = sys.stderr
old_stdout = file
sys.stdout.write = DummyFile(file).write
yield
sys.stdout.write = old_stdout.write
with redirect_stdout():
with tqdm(total=10</

最低0.47元/天 解锁文章
616

被折叠的 条评论
为什么被折叠?



