用Python根據Excel指定檔案名将其批量移動到另一個檔案夾
- 任務
-
- 使用到的子產品
- 實作代碼
- 學習心得
任務
在D盤的srcpic檔案夾裡有3000張照片,統一都是jpg格式,我想要根據Excel表格裡指定的照片,從檔案裡面找出對應的照片并存放到dstpic檔案夾裡
使用到的子產品
-
os子產品
os 子產品提供了非常豐富的方法用來處理檔案和目錄
-
xlrd子產品
python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫,這個子產品裡僅支援.xls格式,不支援讀寫.xlsx
-
shutil子產品
shutil 是 Python 中的進階檔案操作子產品,與os子產品形成互補的關系,os主要提供了檔案或檔案夾的建立、删除、檢視等方法,還提供了對檔案以及目錄的路徑操作。shutil子產品提供了移動、複制、 壓縮、解壓等操作,恰好與os互補,共同一起使用,基本能完成所有檔案的操作。是一個非常重要的子產品。
實作代碼
import os
import xlrd
import shutil
dirpath = r'D:\srcpic' #存放圖檔的檔案夾
dstpath = r'D:\dstpic' #儲存圖檔的檔案夾
datapath = r'D:\名單.xls' #excel表路徑
x1 = xlrd.open_workbook(datapath) #讀取excel
sheet1 = x1.sheet_by_name("Sheet1") #讀取Sheet1
idlist = sheet1.col_values(1) #存放第2列,圖檔名稱(含擴充名)
file_names = os.listdir(dirpath) #擷取檔案夾下所有圖檔名稱(含擴充名)
for i in idlist:
for j in file_names:
if i == j: # 從excel裡找到檔案夾中對應的圖檔
src = os.path.join(dirpath, '%s' % i) # 構造圖檔源檔案的絕對路徑
#print("src=",src)
dst = os.path.join(dstpath, '%s' % i) # 構造圖檔移動的絕對路徑
#print("dst=",dst)
shutil.move(src, dst)
學習心得
以上代碼主要參考網上的各類大神的總結經驗,以及結合個人的了解而調制出來的。
利用Python可以快速完成批量重複的工作,以此文章記錄下來以便日後重複使用。