| import requests | |
| from tqdm import tqdm | |
| import time | |
| def download_file(url, local_filename): | |
| # 发送HTTP GET请求 | |
| with requests.get(url, stream=True) as r: | |
| r.raise_for_status() # 如果请求失败,抛出异常 | |
| # 获取文件总大小 | |
| total_size = int(r.headers.get('content-length', 0)) | |
| # 初始化进度条 | |
| progress_bar = tqdm(total=total_size, unit='B', unit_scale=True, desc=local_filename) | |
| # 记录开始时间 | |
| start_time = time.time() | |
| with open(local_filename, 'wb') as f: | |
| for chunk in r.iter_content(chunk_size=8192): | |
| if chunk: # 过滤掉保持连接的空块 | |
| f.write(chunk) | |
| progress_bar.update(len(chunk)) | |
| # 计算下载速度和剩余时间 | |
| elapsed_time = time.time() - start_time | |
| if elapsed_time > 0: | |
| download_speed = progress_bar.n / elapsed_time | |
| remaining_time = (total_size - progress_bar.n) / download_speed | |
| progress_bar.set_postfix({'剩余时间': f'{remaining_time:.2f}s'}) | |
| progress_bar.close() | |
| return local_filename | |
| # 模型文件的实际下载链接 | |
| url = "https://huggingface.co/EnmingZhang/PSALM/blob/main/model-00001-of-00002.safetensors" | |
| # 本地保存的文件名 | |
| local_filename = "/data/work-gcp-europe-west4-a/yuqian_fu/Ego/huggingface/hub/PSALM/model-00001-of-00002.safetensors" | |
| # 下载文件 | |
| download_file(url, local_filename) | |
| print(f"文件已下载并保存为 {local_filename}") |