我有一个简单的问题:如何将内置 Python 记录器的 print
函数更改为 tqdm.write
以便记录消息不会干扰 tqdm 的进度条?谢谢!
原文由 Guillochon 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个简单的问题:如何将内置 Python 记录器的 print
函数更改为 tqdm.write
以便记录消息不会干扰 tqdm 的进度条?谢谢!
原文由 Guillochon 发布,翻译遵循 CC BY-SA 4.0 许可协议
tqdm
现在有一个用于重定向记录器的内置上下文管理器:
import logging
from tqdm import trange
from tqdm.contrib.logging import logging_redirect_tqdm
LOG = logging.getLogger(__name__)
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
with logging_redirect_tqdm():
for i in trange(9):
if i == 4:
LOG.info("console logging redirected to `tqdm.write()`")
# logging restored
从 tqdm 文档 复制
原文由 thomaskeefe 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答850 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
您需要一个自定义日志记录处理程序:
然后将其添加到日志记录链中:
编辑:修复了调用 super TqdmLoggingHandler 的 init 方法时的错误,勤奋的读者@BlaineRogers 在评论中指出了这一点。 (如果有人想进一步了解 Python 的这个阴暗区域,我推荐 https://fuhm.net/super-harmful/ )