繁体   English   中英

如何将 tqdm 控制台 output 记录到 Python 中的文件中?

[英]How do I log tqdm console output to a file in Python?

我正在处理一项任务,该任务需要我将 tqdm 的控制台 output 记录到文件中。

使用以下代码段 tqdm 在控制台中显示进度条。

import time
from tqdm import tqdm

for x in tqdm(range(10)):
    time.sleep(.5)

我使用file参数将 output 记录到这样的文件中:

import time
from tqdm import tqdm

for x in tqdm(range(10), file = open('/tmp/temp_log.log', 'w')):
    time.sleep(.5)

并且我能够实现我预期的 output。 但是,当我使用file参数时, tqdm不会将任何进度条打印到控制台。

如何在将 output 同时记录到文件时将进度条打印到控制台?

我尝试使用tqdm-logger模块,但它只记录最终进度条,而不是记录所有进度条

经过数小时的头脑风暴,我找到了解决这个问题的聪明方法:

要显示tqdm控制台 output,请将现有 tqdm object(记录器)与另一个tqdm object 包装起来,如下所示:

import time
from tqdm import tqdm

for x in tqdm(

tqdm(range(10), file = open('/tmp/temp_log.log', 'w')),

 desc = 'TQDM Console'):

    time.sleep(.5)

该片段现在记录并输出相同的柱和时间。

尝试手动更新栏。

pbar = tqdm(total = 10)
for x in tqdm(range(10), file = open('/tmp/temp_log.log', 'w')):
    pbar.update(1)
    time.sleep(.5)

该代码创建一个日志文件并显示该栏。 这就像使用第二个酒吧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM