前言
最近學校下發作業需要收集班上同學的截圖檔案并按自己名字命名圖片,然后收集好后打包發給學校,總覺得這樣下發通知讓大家截圖后命名再上傳至群相冊十分麻煩,便想找其他解決方法,使得大家都很便利
解決方法
1 收集圖片
- qq帶的騰訊檔案里可以創建帶有收集圖片的表,設定好后發給同學們進行填寫

最后收集后的結果可以生成excel表
以往的騰訊檔案只能匯出表格,現在的騰訊檔案可以匯出檔案和附件(附件也就是我們收集的圖片),但是附件的命名是按填表的時間來命名的,不符合我們的需求,所以這里我還是選擇匯出excel檔案(xlsx格式)
2. 修改excel表格
- 當我們獲得一個含有命名規則和圖片鏈接地址的excel表后,后續的事情就很好做了,主要思路就是利用代碼將excel表中的鏈接獲取到,并下載至本地,且以excel表中規則進行命名,
- 但是在上圖中,匯出的excel檔案中的地址是藍色的 相當于超鏈接,這樣代碼是獲取不到其鏈接地址的,我們所需要的是能直接在瀏覽器打開的地址,例如https://www.baidu.com/,所以第一步需要將藍色的超鏈接轉為URL地址
- 打開excel,在選項->自定義功能區中選擇打開開發工具

然后在導航欄點開開發工具的編輯器,然后新建模塊后,將下列代碼進行復制并保存
- 打開excel,在選項->自定義功能區中選擇打開開發工具
Function GetAdrs(Rng)
Application.Volatile True
With Rng.Hyperlinks(1)
GetAdrs = IIf(.Address = "", .SubAddress, .Address)
End With
End Function

然后在excel單元格中撰寫函式公式

然后就可以獲取到URL地址了,如圖,
建議此時獲得地址后進行復制粘貼為文本,因為后續嘗試使用代碼進行獲取單元格內容,只能獲取函式公式,而不是公式之后的結果
3. 代碼根據連接進行圖片下載
- 因為使用了宏,所以excel進行保存時只能選擇xlsm格式
- 保存之后,使用python代碼進行下載
import openpyxl
import requests
wb = openpyxl.load_workbook('456.xlsm')
temp = wb.worksheets[0]
# 把下載地址發送給requests模塊
for i in range(2):
f = requests.get(temp['E{}'.format(i+2)].value)
# 下載檔案
with open("圖片收集/{}.jpg".format(temp['C{}'.format(i+2)].value), "wb") as code:
code.write(f.content)
上述代碼中的for陳述句 需要回圈多少次是看有多少同學上交的圖片,這里測驗檔案只有兩行,所以是2

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/377054.html
標籤:其他
上一篇:IEC101測驗工具
下一篇:性能測驗流程及資料分析
