天天看點

用Python根據Excel指定檔案名将其批量移動到另一個檔案夾任務

用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可以快速完成批量重複的工作,以此文章記錄下來以便日後重複使用。