我制作了一个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/no空格),并显示正确的错误消息。
我该怎么办?谢谢!
答案 0 :(得分:2)
正如zoosuck所说,你可以区分多个错误,除了 - Statement。如果要区分IOErrors,请查看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'!"