python编程实现问卷星导出的Excel中图片超链接的批量下载

一、引言

 最近使用问卷星收集了很多学生参加考试的粤康码、行程卡和个人健康安全承诺书截图,问卷星中直接下载的照片并没有按照收集的学生的姓名命名,自己手动修改非常麻烦。由于不是会员,所以在图片下载时还受到了限制(超过300张无法下载)。小编将相关的答卷数据下载打包成电子文档,打开后发现表格中有对应学生上传的图片链接。

信息表(姓名已做处理).png

 因此小编就有了一个想法,用python写个小程序根据这些图片链接自动创建文件夹分别下载存放相关图片。

二、编程实现

 写一个小应用之前应该先明确自己的需求,小编的需求很简单,就是创建一个文件夹,里面有子文件夹,以学生姓名命名,然后学生对应的图片都放在以自己名字命名的文件夹里,图片的命名就采取“姓名+粤康码”、“姓名+行程卡”、“姓名+承诺书”来命名【学生上传了三张截图】。
 使用到的编程语言就是python,以及其中的pandas、requests、os三个库。
 代码编写过程也不难,这里小编也不做过多解释,上代码,小伙伴们直接看。

import pandas as pd
import requests
import os 

#这个信息收集表是小编从问卷星下载到桌面的
df=pd.read_excel(r'C:\Users\Administrator\Desktop\信息收集表.xlsx')
names = df['考生姓名']
urls1=df['粤康码绿码截图']
urls2=df['行程卡截图']
urls3=df['健康卡及安全考试承诺书照片']
PhotoName=['粤康码','行程卡','承诺书']
PhotoUrl=[]
Path= r'F:\\照片收集\\'
for i in range(len(urls1)):
    name=names[i]
    #PathName是存放对应姓名学生照片的文件夹路径
    PathName=Path+name+"\\"
    PathCheck= PathName.rstrip("\\")
    #判断文件夹是否存在
    isExists = os.path.exists(PathCheck)
    if not isExists:
        #不存在创建
        os.makedirs(PathCheck)
        print(PathCheck + ' 创建成功')
        PhotoUrl.append(requests.request('get',urls1[i])) #获取网页
        PhotoUrl.append(requests.request('get',urls2[i])) #获取网页
        PhotoUrl.append(requests.request('get',urls3[i])) #获取网页
        for j in range(3):
            if PhotoUrl[j].status_code != 200:
                print("Error", names[i])
                continue
            #图片下载并按照所定格式命名然后保存到对应姓名的文件夹里
            with open(PathName +names[i] +PhotoName[j]+ '.jpg','wb') as f: 
                f.write(PhotoUrl[j].content) 
                f.close()
    else:
        # 如果存在则不创建,并提示目录已存在
        print(PathCheck+ '目录已存在')
    #先清空列表
    PhotoUrl.clear()
print("完成")
    

三、运行截图

 代码完成后点击开始运行就可以自动下载图片了,以下一点截图:

照片自动下载.png
示例.png

不知不觉都有一年没在上分享文章了,接下来小编要继续再写一写了。哈哈哈,估计月更吧!

你可能感兴趣的:(python编程实现问卷星导出的Excel中图片超链接的批量下载)