我制作了一个Python 2.7.9脚本,该脚本使用urllib.urlretrieve
从网上下载了一些照片。我使用try
和except
命令进行了简单的错误指示,如下所示:
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'!"