前言
通过文本文件中的图片地址下载图片文件,并根据文本文件中的保存地址保存文件
一、写一个下载图片的函数
需要传三个参数:
- 图片的url:image_url
- 图片保存的目录:file_path
- 图片的名称:file_name
- 记录日志: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')