我制作了一个Python 2.7.9脚本,该脚本使用urllib.urlretrieve从网上下载了一些照片。我使用tryexcept命令进行了简单的错误指示,如下所示:

try:
    urllib.urlretrieve("http://example.com/image.jpg", "1.jpg")
except IOError:
    print "Could not connect to 'example.com'!"


但是,我意识到,如果硬盘驱动器上没有剩余空间,也可以提高IOError。我想检测导致IOError升高的原因(无法连接到example.com/没有剩余空间),并显示正确的错误消息。

我该怎么办?谢谢!

最佳答案

正如Zoosuck所说,您可以使用多个(语句除外)区分错误。如果要区分IOError,请查看IOError文档。它揭示了IOError具有属性“ errno”。您可以使用errno模块(https://docs.python.org/2/library/errno.html)确定原因:

import urllib
import errno

try:
    urllib.urlretrieve("http://example.com/image.jpg", "1.jpg")
except IOError, e:
    if e.errno == errno.ENOSPC:
        print "No space left on device"
    else:
        print "Could not connect to 'example.com'!"

10-08 06:45