用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可以快速完成批量重复的工作,以此文章记录下来以便日后重复使用。

你可能感兴趣的:(办公自动化,python)