办公自动化14-根据多个文件名批量查找文件(文件名存放在多个excel表+新生成的文件夹按sheet命名分类)

与上一篇办公自动化13不同的是,此时excel中的名单包含多个sheet,如下

我们新生成的文件夹按照sheet进行归类

代码如下:

import os
import numpy as np
import pandas as pd
import shutil

file_path=r'G:\咨询费成果文件\sum'  #文件路径
filename_path=r'G:\jm\filters\test.xlsx'  #文件列表

filelist=os.listdir(file_path)        #获取文件夹中的文件名称
file_name=pd.read_excel(filename_path,sheet_name=None)   #读取所需文件列表

lst = list(file_name.keys())

for x in range(len(lst)):
    file_name_ = file_name[lst[x]]
    F=os.path.join('G:\\filter',lst[x]) #新文件夹名称(先建好)(F)
    os.mkdir(F)
    
    file_name_['count']=0    #定义新的一列count,用于计数
    for file in filelist:
        m=file_name_.shape[0]   #表格的行数
        olddir=os.path.join(file_path,file) #每一个文件路径
        for i in range(m):
            if str(file_name_['name'][i]) in file:   #寻找对应的文件名
                
                newdir=os.path.join(F,file)
                shutil.copy(olddir,newdir) #复制到新文件夹中
                file_name_['count'][i]=file_name_['count'][i]+1   #计数
                print(file)  #打印出文件名,为了看它是不是在运行
            else:
                continue
    file_name.to_excel('G:\\filter\\'+lst[x]+'.xlsx')        #保存新的文件列表

有问题欢迎留言哦~^_^

猜你喜欢

转载自www.cnblogs.com/lizitingxue/p/12607718.html