File size: 1,611 Bytes
625a17f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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}")