import os from urllib.request import urlopen from tqdm import tqdm import requests import sys from threading import Thread,Lock lock = Lock() def download(url,filename=None): file_size = int(requests.head(url).headers['Content-Length']) if not filename: filename = url.split('/')[-1] if os.path.exists(filename): first_byte = os.path.getsize(filename) print('断点续传中。。。') else: first_byte = 0 header = {'Range': 'bytes=%s-%s' % (first_byte, file_size)} pbar = tqdm(total=file_size,initial=first_byte,unit='B',unit_scale=True,desc=url.split('/')[-1],mininterval=0.5) result = requests.get(url,headers = header,stream=True) with open(filename,'ab') as f: for chunk in result.iter_content(chunk_size=1024): f.write(chunk) pbar.update(1024) pbar.close() return file_size if __name__ == '__main__': download('http://huo.hongjiaozuida.com/20200606/5381_8ab40c11/少年间谍第一季-08.mp4')