根据文本文件中的图片地址下载图片


前言

通过文本文件中的图片地址下载图片文件,并根据文本文件中的保存地址保存文件


一、写一个下载图片的函数

需要传三个参数:

  1. 图片的url:image_url
  2. 图片保存的目录:file_path
  3. 图片的名称:file_name
  4. 记录日志:logfile
def downloadImg(image_url,file_path,file_name,logfile):
    try:
        if not os.path.exists(file_path):
            os.makedirs(file_path)  # 如果没有这个path则直接创建
        print(file_path)
        filename = file_path + '\\' + file_name
        # 拼接文件名。
        print(filename)
        # 利用urllib.request.urltrieve方法下载图片
        urllib.request.urlretrieve(image_url, filename=filename)
        # 利用urllib.request.urltrieve方法下载图片
        print("图片{}下载成功".format(image_url))
    except IOError as e:
        log = open(logfile,'a')
        log.write(image_url)
        log.write('\n')
        log.close()
        print("io异常", e)
    except Exception as e:
        print("存在异常:", e)

二、读取文件下载图片

文本格式

http://img.jingtuitui.com/759fa20190115144450401.jpg,download/test/1.jpg
http://img.jingtuitui.com/759fa20190115144450401.jpg,download/test/2.jpg
http://img.jingtuitui.com/759fa20190115144450401.jpg,download/test/3.jpg

代码如下(示例):

image_url_paths=[]
file = open("./pests_attachment.txt",encoding='utf-8')
for line in file.readlines():
    line = line.strip('\n')
    image_url_paths.append(line)
for image_url_path in image_url_paths:
    image_url = image_url_path.split(',')[0].replace("\"",'')
    file_name = os.path.basename(image_url_path.split(',')[1]).replace("\"",'')
    file_path = os.path.dirname(image_url_path.split(',')[1]).replace("\"",'') + '\\'

    downloadImg(image_url,file_path,file_name,'log.log')

三.完整代码

import requests
import os
import urllib.request

# 下载图片
# 图片地址image_url:http://img.jingtuitui.com/759fa20190115144450401.jpg
# 存放路径file_path: D:/download/images/
# 文件名file_name: 222.jpg
def downloadImg(image_url,file_path,file_name,logfile):
    try:
        if not os.path.exists(file_path):
            os.makedirs(file_path)  # 如果没有这个path则直接创建
        print(file_path)
        filename = file_path + '\\' + file_name
        # 拼接文件名。
        print(filename)
        # 利用urllib.request.urltrieve方法下载图片
        urllib.request.urlretrieve(image_url, filename=filename)
        # 利用urllib.request.urltrieve方法下载图片
        print("图片{}下载成功".format(image_url))
    except IOError as e:
        log = open(logfile,'a')
        log.write(image_url)
        log.write('\n')
        log.close()
        print("io异常", e)
    except Exception as e:
        print("存在异常:", e)

# 读文件

image_url_paths=[]
file = open("./test.txt",encoding='utf-8')
for line in file.readlines():
    line = line.strip('\n')
    image_url_paths.append(line)

for image_url_path in image_url_paths:
    image_url = image_url_path.split(',')[0].replace("\"",'')
    file_name = os.path.basename(image_url_path.split(',')[1]).replace("\"",'')
    file_path = os.path.dirname(image_url_path.split(',')[1]).replace("\"",'') + '\\'

    downloadImg(image_url,file_path,file_name,'log.log')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值