python根据url list多线程下载图片、删除图片目录

本文介绍了如何使用Python进行多线程下载图片,重点在于异常处理和urlretrieve函数的应用。同时,作者分享了一个并行删除指定图片ID命名的文件夹的代码示例,适用于批量清理含有目标检测特征的图片文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到很多个版本多线程下载图片,自己改了改,主要是异常以及urlretrieve的使用

import time
from multiprocessing.pool import ThreadPool
import os
import urllib
from urllib.request import urlretrieve

def download_image(url, our_dir):
    '''
    根据url下载图片
    :param url:
    :return: 返回保存的图片途径
    '''
    if url == '':
        return None

    basename = os.path.basename(url)
    if basename.endswith(('jpg', 'png', 'jpeg', 'bmp')):
        print(basename + ':already has format')
    else:
        basename = basename + '.jpg'

    try:
        urllib.request.urlopen(url)
        # print('OK')
        filename = os.path.join(our_dir, basename)
        if os.path.exists(filename):
            pass
            print(basename, 'is already exist in ', our_dir)
        else:
            urlretrieve(url, filename)
            print('re download:', filename)
        return filename
    except urllib.error.URLError as e:
        if hasattr(e, "code"):
            print(e.code)
        if hasattr(e, "reason"):
            print(e.reason)
        return None
    print("download image failed:{}".format(url))
    return None

def download_image_thread
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值