解决的问题:图片的链接存储在xlsx文件的第二列,xlsx的第一列存储的图片的名称,要求读取文件的名称和链接,并给图片命名为xxx-i这种形式。
import pandas as pd
import requests
import os
# 读取Excel文件
file_path = '读取文件的路径' # 替换为你的Excel文件路径
df = pd.read_excel(file_path)
# 保存图片的文件夹
save_folder = '保存图片的文件夹'
os.makedirs(save_folder, exist_ok=True)
# 遍历Excel文件中的每一行
for index, row in df.iterrows():
prefix = row[0]
image_urls = eval(row[1]) # 假设链接是以字符串形式保存的列表,需要用eval转换
for i, url in enumerate(image_urls, start=1):
try:
response = requests.get(url)
response.raise_for_status() # 检查请求是否成功
ext = url.split('.')[-1] # 获取图片扩展名
image_name = f'{prefix}-{i}.{ext}'
image_path = os.path.join(save_folder, image_name)
with open(image_path, 'wb') as file:
file.write(response.content)
print(f'图片 {image_name} 下载成功')
except Exception as e:
print(f'图片 {url} 下载失败: {e}')