1 介绍
关于tqdm
的使用文档,请查阅《tqdm documentation》
2 如何使tqdm的输出信息呈现默认颜色
tqdm(range(60), file=sys.stdout)
# 可以通过修改file的输出流来实现这个功能
3 tqdm.set_description()
不支持多行字符串
我们发现使用tqdm.set_description()
设置时不支持多行字符串,
with tqdm(range(10), file=sys.stdout) as t:
for i in t:
t.set_description(f"info\n{i+1}")
>>>
info
info
info
info
info
info
info
info
info
info
info
10: 100%|██████████| 10/10 [00:00<00:00, 36126.65it/s]
现在,我们使用RecordPrints()
解决了这个问题,其代码如下:
class RecordPrints:
def __init__(self):
super().__init__()
self._record = ""
@property
def record(self):
return self._record
def func(self, string):
if len(string) > 3:
self._record = string
self.__cprint(string)
def __enter__(self):
self.__cprint = sys.stdout.write
sys.stdout.write = self.func
def __exit__(self, exc_type, exc_val, exc_tb):
sys.stdout.write = self.__cprint