2013-07-03 47 views
0

是否可以使用Python 2.7.2从网站下载并命名文件并将其保存在桌面上?如果是的话,那么该怎么做呢?使用Python 2.7.2下载,命名并保存文件2.7.2

+0

是的,您可以使用各种网络框架(硒,urllib等)来下载文件。然后您可以使用内置模块来命名或重命名文件。 – enginefree

+0

简短的答案是肯定的..但它取决于你从哪里下载它。如果您知道文件 – nitin

+1

'urllib2.urlopen'的完整网址,则可以使用urllib下载要读取的远程文件。打开一个本地文件来写。 '写入'本地文件,'remoteFile.read()'的内容。根据需要'os.rename'本地文件。 – inspectorG4dget

回答

8

这里是做3路使用urllib2,requestsurllib

import urllib2 

with open('filename','wb') as f: 
    f.write(urllib2.urlopen(URL).read()) 
    f.close() 
print "Download Complete!" 
--------------------------------------- 
import requests 

r = requests.get(URL) 
with open("filename", "wb") as code: 
    code.write(r.content) 
print "Download Complete!" 
--------------------------------------- 

import urllib 

urllib.urlretrieve(URL, "filename") 
print "Download Complete!" 

其中filename是你想要的文件,并URL是您想要下载

这将文件保存在同一目录中的蟒蛇文件你正在使用下载

文件的URL名称
+0

谢谢基督徒!我使用第三个选项,它的工作原理。导入请求不起作用“ImportError:No module named requests”。我还有一个与此相关的问题,如何知道下载是否完成以转移到另一个任务? – Ash

+0

欢迎你,你必须下载请求,这就是为什么它没有工作,我编辑的问题:)现在,当你看到下载完成!你知道它的完成 – Serial

+0

所以我不需要担心程序只会在完成下载后才会继续。我对吗? – Ash

0

使用requests库很容易。下面是下载StackOverflow的标志图像到当前目录中的例子:

import requests 
with open('sprites.png', 'wb') as f: 
    resp = requests.get('https://cdn.sstatic.net/stackoverflow/img/sprites.png', 
         stream=True) 
    for chunk in resp.iter_content(8192): 
     f.write(chunk) 
+0

感谢您的回答。代码不起作用,我得到错误: ImportError:没有模块命名请求 – Ash

+0

这是您必须安装的第三方模块。点击链接以获取安装说明。 – jterrace

1

您可以使用urllib.urlretrieve

urllib.urlretrieve(url[, filename[, reporthook[, data]]]) 

docs

Copy a network object denoted by a URL to a local file, if necessary. If the URL points to a local file, or a valid cached copy of the object exists, the object is not copied.