python實現檔案下載的方法總結

來源:互聯網
上載者:User

標籤:

前端時間遇到一個通過url下載檔案的需求,只需要簡單的編寫一個py指令碼即可。從網上搜了下python實現檔案下載的方法,總結如下,備查。

以下方法均已測試,環境win8.1  python2.6/2.7

待補充。-- 20150507

 

方法一:

使用 urllib 模組提供的 urlretrieve() 函數。urlretrieve() 方法直接將遠端資料下載到本地。

urlretrieve(url, [filename=None, [reporthook=None, [data=None]]])

       說明:

  • 參數 finename 指定了儲存本地路徑(如果參數未指定,urllib會產生一個臨時檔案儲存資料。)

  • 參數 reporthook 是一個回呼函數,當串連上伺服器、以及相應的資料區塊傳輸完畢時會觸發該回調,我們可以利用這個回呼函數來顯示當前的下載進度。

  • 參數 data 指 post 到伺服器的資料,該方法返回一個包含兩個元素的(filename, headers)元組,filename 表示儲存到本地的路徑,header 表示伺服器的回應標頭。 

執行個體:

#!/usr/bin/python#encoding:utf-8import urllibimport osdef Schedule(a,b,c):    ‘‘‘‘‘    a:已經下載的資料區塊    b:資料區塊的大小    c:遠程檔案的大小   ‘‘‘    per = 100.0 * a * b / c    if per > 100 :        per = 100    print ‘%.2f%%‘ % perurl = ‘http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2‘#local = url.split(‘/‘)[-1]local = os.path.join(‘/data/software‘,‘Python-2.7.5.tar.bz2‘)urllib.urlretrieve(url,local,Schedule)######output#######0.00%#0.07%#0.13%#0.20%#....#99.94%#100.00%

來源:http://www.nowamagic.net/academy/detail/1302861

方法二:

使用urllib的urlopen()函數

執行個體:

import urllib2print "downloading with urllib2"url = ‘http://www.pythontab.com/test/demo.zip‘ f = urllib2.urlopen(url) data = f.read() with open("demo2.zip", "wb") as code:         code.write(data)

 

方法三:

使用requests模組

requests模組下載:https://pypi.python.org/pypi/requests/#downloads

執行個體:

import requests print "downloading with requests"url = ‘http://www.pythontab.com/test/demo.zip‘ r = requests.get(url) with open("demo3.zip", "wb") as code:     code.write(r.content)

 

python實現檔案下載的方法總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.