tqdm 以人类可读的单位显示下载
tqdm to display download in human readable units
我正在使用 tqdm 并请求管理 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)
使用上面的代码,下载大小的级数是错误的,我在 it/s
中看到了下载速度。我希望以 MB/s
的形式显示所有内容。
为 tqdm 传递额外参数 unit='B', unit_scale=True, unit_divisor=1024
。
示例:
from tqdm import tqdm
for i in tqdm(range(9999999), unit='B', unit_scale=True, unit_divisor=1024):
pass
输出:
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 9.54M/9.54M [00:03<00:00, 2.66MB/s]
我正在使用 tqdm 并请求管理 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)
使用上面的代码,下载大小的级数是错误的,我在 it/s
中看到了下载速度。我希望以 MB/s
的形式显示所有内容。
为 tqdm 传递额外参数 unit='B', unit_scale=True, unit_divisor=1024
。
示例:
from tqdm import tqdm
for i in tqdm(range(9999999), unit='B', unit_scale=True, unit_divisor=1024):
pass
输出:
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 9.54M/9.54M [00:03<00:00, 2.66MB/s]