1. 程式人生 > >新技能 get —— Python 斷點續傳下載檔案

新技能 get —— Python 斷點續傳下載檔案

from urllib.request import urlretrieve
import sys
import os

prev_reported_download_percent = None

# 首先定義下載 hook,作為 urllib.request.urlretrive 的關鍵字引數
def download_hook(count, block_size, total_size):
    """ 介面是寫死的 """
    global prev_reported_download_percent
    percent = int(count*block_size*100/total_size)
    if
prev_reported_download_percent != percent: if percent % 5 == 0: sys.stdout.write('%s%%' % percent) sys.stdout.flush() else: sys.stdout.write('.') sys.stdout.flush() prev_reported_download_percent = percent def maybe_download(filename, force=False)
:
""" force 表示是否強制下載 """ if force or not os.path.exists(filename): print('Attempting to download') filename, _ = urlretrieve(url+filename, filename, reporthook=download_hook) # url+filename:表示檔案的 url 地址, # filename 則為儲存到本地時的檔名 print('\nDownload completed!'
) # statinfo = os.stat(filename) return filename

比如對於 http://ufldl.stanford.edu/housenumbers/ 網站下的 train.tar.gz/test.tar.gz兩檔案,客戶端的呼叫方式為:

url = 'http://ufldl.stanford.edu/housenumbers/'
train_filename = maybe_download('train.tar.gz')
test_filename = maybe_download('test.tar.gz')

相關推薦

技能 get —— Python 斷點下載檔案

from urllib.request import urlretrieve import sys import os prev_reported_download_percent = None #

Python實現斷點下載檔案,大檔案下載還怕下載到一半就斷了嗎?不存在!

這篇部落格簡單介紹python斷點續傳下載檔案,並加入花哨的下載進度顯示方法,涉及Python檔案操作的技巧,和一些函式庫的使用。 環境 Python 3.6 requests模組 對應檔案的下載連結 (要下載的檔案必須支援斷點續傳) (是不是很少東西

python實現斷點下載檔案

最近的任務裡有一個功能是要我從日誌伺服器實時跟新日誌到本地,日誌在不斷新增內容就需要我隔一段時間從上次下載的位置繼續下載,並寫入本地檔案上次寫完的位置後面。 headers = {'Range': 'bytes=%d-' % local_f

Android網路程式設計 --斷點下載檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C#實現http多執行緒斷點下載檔案

using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Net; using u8 = System.Byte; using

斷點/下載

在後臺專案中經常會要求有下載和上傳功能的實現,在大檔案傳輸的過程中可以實現斷點傳輸避免重複下載:現在我們來整理一下,也可以作為一個專案的亮點。 由於是本地測試,所以是將"D:/test/remote/file.txt"傳送到"D:/test/local/file.txt",如果是使用FT

installgithub-支援斷點下載GitHubDesktop離線安裝檔案

用GitHub賬號提交程式碼的都希望下載本地客戶端克隆倉庫 https://desktop.github.com/ 可是在天朝用GitHub.exe線上下載安裝這個客戶端實在是太難了 由於不支援斷點續傳 公司千M光纖外帶翻牆都無法成功下載這個玩意

ASP.NET WebAPi之斷點下載(下)

前言 上一篇我們穿插了C#的內容,本篇我們繼續來講講webapi中斷點續傳的其他情況以及利用webclient來實現斷點續傳,至此關於webapi斷點續傳下載以及上傳內容都已經全部完結,一直嚷嚷著把SQL Server和Oracle資料庫再重新過一遍,這篇過完,就要開始

java多執行緒實現斷點下載

public class DownloadThread extends Thread {private int id;private int startindex;private int endindex;private String path;static int threadfinishedcount=0

OkHttp實現多執行緒斷點下載,單例模式下多工下載管理器,一起拋掉sp,sqlite的輔助吧

        最近專案需要使用到斷點下載功能,筆者比較喜歡折騰,想方設法拋棄SharedPreferences,尤其是sqlite作記錄輔助,改用臨時記錄檔案的形式記錄下載進度,本文以斷點下載為例。先看看demo執行效果圖:               斷點續傳:記

Android FTP 多執行緒斷點下載\上

最近在給我的開源下載框架Aria增加FTP斷點續傳下載和上傳功能,在此過程中,爬了FTP的不少坑,終於將功能實現了,在此把一些核心功能點記錄下載。 FTP下載原理 FTP單執行緒斷點續傳 FTP和傳統的HTTP協議有所不同,由於FTP沒有所謂的標頭

Java多執行緒斷點下載

package com.example.threadpool; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.RandomAc

android 多執行緒斷點下載

今天跟大家一起分享下android開發中比較難的一個環節,可能很多人看到這個標題就會感覺頭很大,的確如果沒有良好的編碼能力和邏輯思維,這塊是很難搞明白的,前面2次總結中已經為大家分享過有關技術的一些基本要領,我們先一起簡單回顧下它的基本原理。什麼是多執行緒下載?多執行緒下載其

iOS開發之網路程式設計--4、NSURLSessionDataTask實現檔案下載(離線斷點下載)

前言:根據前篇《iOS開發之網路程式設計--2、NSURLSessionDownloadTask檔案下載》或者《iOS開發之網路程式設計--3、NSURLSessionDataTask實現檔案下載(離線斷點續傳下載)》,都遺留了一個細節未處理的問題,那就是在離線斷點下載的過程中,當應用程式重新啟動之後,進度

Android-斷點下載

工作找完了,玩也玩完了,該好好學習了,最近我把《Java併發程式設計的藝術》這本書給讀完了,對於併發程式設計以及執行緒池的使用還是不嫻熟,我就在imooc上找到一個專案“Android-Service系列之斷點續傳下載“,這是我對這個專案在編寫的時候記錄。 涉及

利用Xutils框架進行斷點下載

前面有兩篇博文主要介紹瞭如何利用volley獲取所有cookie資訊和自定義一個request, 地址如下: 我們都知道volley是google官方推出的一款網路請求框架,它適合高併發但是資料量不大的網路請求操作,利用volley我們可以非常迅速的連線到伺服器拿到我們

【Android開發經驗】關於“多執行緒斷點下載”功能的一個簡單實現和講解

    上班第一天,在技術群裡面和大家閒扯,無意中談到了關於框架的使用,一個同學說為了用xUtils的斷線續傳下載功能,把整個庫引入到了專案中,在google的官方建議中,是非常不建議這種做法的,集合框架雖然把很多功能整合起來,但是程式碼越多,出現問題的可能越大,而且無形之中

輕量級多執行緒斷點下載框架

我又來了,一個月寫了三個小框架我也是屌屌的。 一般的小專案,遇到下載的問題時都是簡單的開一個執行緒然後通過流的方式來實現。少量的下載,檔案也比較小的的時候,這樣的方式都是OK的。但是如果真要做一款下載為主要功能的app的時候,或者專案中涉及大量下載任務的時候,

http斷點檔案下載原理解析

 一、斷點續傳的原理        其實斷點續傳的原理很簡單,就是在http的請求上和一般的下載有所不同而已。        打個比方,瀏覽器請求伺服器上的一個文時,所發出的請求如下: ? get /down.zip http/1.1 accept: image/gif, image/x-

Android實現網路多執行緒斷點下載

本示例介紹在Android平臺下通過HTTP協議實現斷點續傳下載。       我們編寫的是Andorid的HTTP協議多執行緒斷點下載應用程式。直接使用單執行緒下載HTTP檔案對我們來說是一件非常簡單的事。那麼,多執行緒斷點需要什麼功能?       1.多執行緒下載,