2014-02-18 49 views
0

我可以通過下列方式從URL下載文件。我能想到的將文件下載到特定文件夾python

import urllib2 
response = urllib2.urlopen("http://www.someurl.com/file.pdf") 
html = response.read() 

一種方法是打開該文件作爲二進制文件,然後重新保存它到目前存在的文件夾,我要救

,但有沒有更好的辦法?

感謝

回答

3

你正在尋找的功能是urllib.urlretrieve

import urllib 
linkToFile = "http://www.someurl.com/file.pdf" 
localDestination = "/home/user/local/path/to/file.pdf" 
resultFilePath, responseHeaders = urllib.urlretrieve(linkToFile, localDestination) 
+0

爲什麼我在本地目標指定文件名? – Ank

+0

如果我想讓它成爲相同的文件名,該怎麼辦? – Ank

+0

@Ank在我的答案中鏈接到的文檔中說_「第二個參數,如果存在,指定要複製到的文件位置(如果缺失,該位置將是一個帶有生成名稱的臨時文件)」_。所以如果你想保留文件名,你必須自己分析linkToFile來提取文件名,例如[urlparse module](http://docs.python.org/2.7/library/urlparse)和[os .path.basename](http://docs.python.org/2.7/library/os.path.html?highlight=os.path.basename#os.path.basename)就像這樣:** fileName = os.path .basename(urlparse.urlparse(linkToFile)。路徑)**。 –

相關問題