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