我想使用 colorama,但我已经在我的代码中使用了 tqdm。
例子:
import colorama as color
import tqdm as tqdm # without line it's working
print(color.Fore.GREEN + 'Green text')
Run Code Online (Sandbox Code Playgroud)
它在没有 tqdm 的情况下工作正常,但是如果我导入 tqdm,colorama 在我重新启动控制台之前不会为文本着色。我将 IPython 控制台与 Spyder(Python 3.6)一起使用。
有没有办法可以一起使用这些软件包?
两者有什么区别?tqdm 环绕任何可迭代对象。但是我不确定 tqdm 在给定两个参数时如何运行。
# train_ids = list
elements = ('a', 'b', 'c')
for count, ele in tqdm(enumerate(elements)):
print(count, i)
# two arguments
for count, ele in tqdm(enumerate(elements), total=len(train_ids)):
print(count, i)
Run Code Online (Sandbox Code Playgroud) 当使用“verbose=1”选项在 Jupyter notebook 中运行 keras 模型时,我开始获得的不是单行进度状态更新,而是批量更新的大量状态行。见附图。重新启动 jupyter 或浏览器没有帮助。Jupyter notebook 服务器是:5.6.0,keras 是 2.2.2,Python 是 Python 3.6.5 请帮忙。
单元格内容:
history = model.fit(x=train_df_scaled,y=train_labels,batch_size=BATCH_SIZE,epochs=EPOCHS,verbose=1, validation_data=(validation_df_scaled,validation_labels),shuffle=True)
输出洪水示例:(它是这样的数千行)
损失:217.5794 - mean_absolute_error:11.166 - ETA:32:42 - 损失:216.9500 - mean_absolute_error:11.165 - ETA:32:21 - 损失:216.6378 - mean_absolute_16:205-16-16 误差-16-16-1604 ETA: 31:41 - 损失: 215.6621 - mean_absolute_error: 11.166 - ETA: 31:21 - 损失: 215.4639 - mean_absolute_error: 11.171 - ETA: 31:02 - 损失: 215.7 mean_absolute_error:-1165-3504 214.6583 - mean_absolute_error: 11.169 - ETA: 30:27 - loss: 213.8844 - mean_absolute_error: 11.164 - ETA: 30:10 …
我正在学习pytube下载 Youtube 视频并尝试tqdm在它上面显示进度条,但它显示了各种错误,而且我无法理解当我下载视频pytube并显示进度条时发生了什么,这是我无法显示的原因加tqdm进去。
我写的代码pytube运行良好,这是代码:
from pytube import YouTube
url = str(input("Enter the video link: "))
yt = YouTube(url)
videos = yt.streams.filter(file_extension='mp4').all()
filename = yt.title
s = 1
for v in videos:
print(str(s)+". "+str(v))
s += 1
n = int(input("Enter the number of the video: "))
vid = videos[n-1]
vid.download("C:/Users/user/Downloads/")
print(yt.title,"\nHas been successfully downloaded")
Run Code Online (Sandbox Code Playgroud)
我需要tqdm添加到代码中才能显示进度条。
我一直在浏览 tqdm文档,但无论我在哪里看,我都找不到一种方法来提取经过的时间和估计的剩余时间字段(基本上是每行进度条的中心:)00:00<00:02。
0%| | 0/200 [00:00<?, ?it/s]
4%|? | 7/200 [00:00<00:02, 68.64it/s]
8%|? | 16/200 [00:00<00:02, 72.87it/s]
12%|?? | 25/200 [00:00<00:02, 77.15it/s]
17%|?? | 34/200 [00:00<00:02, 79.79it/s]
22%|??? | 43/200 [00:00<00:01, 79.91it/s]
26%|??? | 52/200 [00:00<00:01, 80.23it/s]
30%|??? | 61/200 [00:00<00:01, 82.13it/s]
....
100%|??????????| 200/200 [00:02<00:00, 81.22it/s]
Run Code Online (Sandbox Code Playgroud)
tqdm基本上通过在发生更新时打印动态进度条来工作,但是有没有办法“只”打印00:01和00:02部分,所以我可以在我的 Python 程序的其他地方使用它们,例如在自动停止代码中,如果它停止进程花的时间太长了吗?
我正在使用np.vectorize-ed 函数,并希望使用tqdm. 但是,我一直无法弄清楚如何做到这一点。
我发现的所有建议都与将计算转换为 for 循环或 pd.DataFrame 相关。
我正在使用 tqdm 和 requests 来管理 Python 中的文件下载。但是我不知道如何使 tqdm 以人类可读的格式(即以 MB/s 为单位)显示进度条。
这是我的代码
import requests
import os
from tqdm import tqdm
def download_file(url, local_path="./"):
local_filename = url.split('/')[-1]
path = local_path + local_filename
r = requests.get(url, stream=True)
total_size = int(r.headers.get('content-length', 0))
chunk_size = 32*1024
with open(local_filename, 'wb') as f:
# 1KB = 1024 bytes
for chunk in tqdm(r.iter_content(chunk_size), total=total_size, unit_scale=True,
unit_divisor=1024):
if chunk:
f.write(chunk)
return path
weightLink = "https://pjreddie.com/media/files/yolov3.weights"
weigthPath = r"/PyTorch-YOLOv3/weights/"
weightLink = "https://pjreddie.com/media/files/yolov3.weights"
download_file(weightLink, weigthPath)
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,下载大小的进度是错误的,我在 中看到下载速度it/s。我希望所有内容都以MB/s …
我该如何存档?
from tqdm import tqdm
for link in tqdm(links):
try:
#Do Some Stff
except:
pass
print("Done:")
Run Code Online (Sandbox Code Playgroud)
结果:
100%|??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????| 4/4 [00:00<00:00, 111.50it/s]
Done:
100%|??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????| 4/4 [00:00<00:00, 111.50it/s]
Done:
Run Code Online (Sandbox Code Playgroud)
预期结果(显示状态栏,但在进入控制台后不打印)
Done:
Done:
Run Code Online (Sandbox Code Playgroud) 我在笔记本中使用 tqdm (from tqdm.auto import tqdm),输出很好且正确,但是当在终端中运行脚本时使用同一行时,我会阻塞多行输出。tqdm 有什么方法可以区分笔记本输出和终端输出吗?