2013-02-05 36 views
0

我想使用python(urllib或urllib2)從網站下載文件 下載時我想顯示下載的百分比。如何讀取網上檔案的大小

#!usr/bin/env python 
#-*- coding: latin1 -*- 

import urllib 

url = 'http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1-20Linux2-6.tar.gz' 
urllib.urlretrieve(url, "pickit.tar.gz") 

我該如何實現?

回答

1

下面的代碼應該工作:

def download(url, local_file): 
    def progress(blocks_read, block_size, total_size): 
     percent = min(int(blocks_read * block_size * 100/total_size), 100) 
     sys.stdout.write("\rdownloading {}: {:2}%".format(local_file, percent)) 
     if percent == 100: 
      sys.stdout.write('\n') 
     sys.stdout.flush() 

    urllib.urlretrieve(url, local_file, reporthook=progress) 


# call download function 
download("http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1-20Linux2-6.tar.gz", 
     "pickit.tar.gz") 
+0

是的!它工作完美 – marlonjke

0

answer有一個很好的片段。

簡而言之:

  1. 得到Content-Length頭
  2. 讀出的數據的塊
  3. 計算值百分比
  4. 重複2和3,直到完成