我这里是复制多个文件,所以我先把需要复制的文件整理到表格里头,这里只列出部分。
# -*- coding: utf-8 -*-
'''
遍历某目录的下级目录,并查找指定文件,然后复制到另一个地方
'''
import shutil,os,re
from pathlib import Path
import pandas as pd
#拷贝路径
copy_File_path = '*****'
#粘贴路径
paste_file_path = '*****'
#总的拷贝文件名
sum_file_name = pd.read_excel('testfile.xlsx', sheet_name='工作表1')
#文件类型.
fileType1 = '.zip'
#存放需要拷贝的文件的前缀名
fileName_list_SCOMPID = []
for i in sum_file_name.SCOMPID:
fileName_list_SCOMPID.append(i+fileType1)
# print(fileName_list_SCOMPID)
# print(len(fileName_list_SCOMPID))
def get_dir(path,fileType):
'''
:param path: 拷贝路径
:param fileType: 需要复制的文件名+类型
:return:null
'''
count = 0
# 查看路径下的所有文件夹
allfilelist = os.listdir(path)
# print(allfilelist)
for file in allfilelist:
# print(file,'\n')
#拼接该路径下所有文件夹的完整路径
filepath = os.path.join(path, file)
# print(filepath)
#判断是否是文件夹,如果是则继续遍历,否则打印信息
if os.path.isdir(filepath):
allfilelist2 = os.listdir(filepath)
# print('allfilelist2',allfilelist2)
for file2 in allfilelist2:
filepath3 = os.path.join(filepath, file2)
# print('allfilelist3',filepath3)
#判断文件是否以结尾
if filepath3.endswith(fileType):
print('找到文件:',filepath3)
print('paste_file_path+filepath3:',paste_file_path+filepath3)
print(paste_file_path +'\\' +filepath3[-15:-4]+ str(count) + filepath3[-4:])
# 复制filepath3找到的文件到distPath目录
# shutil.copy(filepath3, paste_file_path[:-4] + str(count) + paste_file_path[-4:])
shutil.copy(filepath3, paste_file_path + '\\'+filepath3[-15:-4]+ str(count) + filepath3[-4:]) #注:这里有进行路径拼接,具体情况根据实际需要去修改
# shutil.copyfile(filepath3, paste_file_path)
count+=1
else:
print('不是文件夹,继续查找...')
if __name__ == '__main__':
for fileType in fileName_list_SCOMPID:
get_dir(copy_File_path,fileType)
print('完成第一个')
我参考的文章链接:https://blog.csdn.net/liudong9109/article/details/83685525