【问题标题】:Image downloading in python error handlingpython错误处理中的图像下载
【发布时间】:2015-12-25 05:08:22
【问题描述】:

我有一个包含图像的文本文件,并且我有一个要保存图像的目录。

import os
import urllib
import sys


def normalize(url):
   url = url.split("/")[-1]
   return url.split("\n")[0]

def main():
   out_dir = "Workspace/cnf/img"

    with open('cnf/image_flower.txt') as url_array:
    for url in url_array:
        try:
           urllib.urlretrieve(url, os.path.join(out_dir, normalize(url)))
         except Exception as e :
            print "Exception|",e,"|",url

print("Images Downloaded")

main()

我正在获取图像。但我面临以下问题 1.我想捕捉所有的http错误代码并像找不到页面和各种错误一样打印出来。我的代码无法打印。 2.我有大约 1,00,000 个网址。所以我的代码需要很多时间。

你能不能给我一个更好的处理方法

【问题讨论】:

    标签: python image http error-handling http-status-code-404


    【解决方案1】:
    1. 您的代码看起来不错。但是,您可能需要检查“除外”行代码中的缩进。 Python 编程基于缩进,因此可能无法正常工作。

    try: urllib.urlretrieve(url, os.path.join(out_dir, normalize(url))) except Exception as e : print "Exception: ",e," at ",url

    1. 如果您有大约 100,000 个 url 来下载图片,我想这有时应该取决于您的图片有多大。

    【讨论】:

    • 我的代码工作正常。我想要的是捕捉是否有 http 错误。找不到类似页面。这个尝试和异常无法处理。
    • 尝试在您的异常print e.code 中打印出错误状态代码,如果它返回404,那么它是页面未找到错误。那么你可以使用 If if e.code == 404: # do stuff.. else: 来处理它,如果它仍然不适合你,请检查 urllib2.HTTPError。
    猜你喜欢
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 2016-07-20
    • 2014-04-24
    • 1970-01-01
    相关资源
    最近更新 更多