2

我知道如何使用 python 从网上下载文件,但是我希望处理所请求的文件不存在的情况。在这种情况下,我想打印一条错误消息(“404:找不到文件”)并且不向磁盘写入任何内容。但是,我仍然希望能够继续执行程序(即下载可能存在的列表中的其他文件)。

我该怎么做呢?下面是一些模板代码,用于根据其 url 下载文件(如果您认为有更好的方法,请随时修改它,但请保持简洁明了)。

import urllib
urllib.urlretrieve ("http://www.example.com/myfile.mp3", "myfile.mp3")
4

3 回答 3

0
from urllib2 import URLError

try:
    # your file request code here
except URLError, e:
    if e.code == 404:
        # your appropriate code here
    else:
        # raise maybe?

我遵循了这个指南,其中有一个关于处理异常的特定部分,发现它真的很有帮助。

于 2012-05-03T09:47:28.550 回答
-1
import urllib, urllib2
try:
    urllib.urlretrieve ("http://www.example.com/", "myfile.mp3")
except URLError, e:
    if e.code == 404:
        print "4 0 4"
    else:
        print "%s" % e 

这就是您的代码所做的。它基本上试图检索 www.example.com 的网页并将其写入 myfile.mp3。它不会以异常结束,因为它不是在寻找 myfile.mp3,它基本上将它在 html 中获得的所有内容写入 myfile.mp3

如果您正在寻找代码以在网络上的某个位置下载文件,请试试这个

如何使用 urllib2 在 python 中下载 zip 文件?

于 2012-07-13T01:20:24.150 回答
-1

您的代码应如下所示:

try:
    urllib.urlretrieve ("http://www.example.com/myfile.mp3", "myfile.mp3")
except URLError,e:
    if e.code==404:
        print 'file not found. moving on...'
        pass
于 2012-05-03T11:39:07.327 回答