import os
import shutil
initial_file_path = r'C:\Users\Administrator\Desktop\test'#最开始需要查找文件的路径,需要更改!!
final_file_path = 'C:/Users/Administrator/Desktop/test3/' #移动后的文件路径,需要更改!!
reference_file_path = 'C:/Users/Administrator/Desktop/test2/'#依照什么名称搜索文件,依照标签或者图像名称,需要更改!!
def condition_research(file_name, filename_extension, file_path):
file_list = os.listdir(file_path)
number1 = []
for number, name in enumerate(file_list):
print(number)
exist_filename_extension = os.path.splitext(name)[1]#文件后缀
exist_filename = os.path.splitext(name)[0]#文件名称
print(exist_filename)
#搜索前几位的序号
if((file_name != exist_filename[0:len(file_name)])) | (filename_extension != exist_filename_extension):
#将不是的文件序号生成新的列表
number1.append(number)
print("%s不是相关联的文件" %exist_filename)
else:
print("%s是相关联的文件" %exist_filename)
print(number1)
#################根据多个索引高效删除python list中对应位置的元素########################
a_index = set([i for i in range(len(file_list))])
b_index = set(number1)
index = list(a_index - b_index)
file_list = [file_list[i] for i in index]
###############################################################################
#问题是已经知道要删除的索引序号,如何删除索引对应的选后
return file_list
# condition_research('1','.txt', reference_file_path)#以列表形式返回
file_list = os.listdir(initial_file_path)
for goal_file in condition_research('', '.txt', reference_file_path):#加入搜索条件,第一个项为要查找文件的首字符,第二项为查找文件的后缀名,第三项为查找文件的路径,需要更改!!
for search_file in file_list:
# print(goal_file)
# print(search_file)
# print(os.path.splitext(search_file)[0])
if os.path.splitext(goal_file)[0] == os.path.splitext(search_file)[0]:
shutil.copy(initial_file_path+'\\'+search_file, final_file_path)#文件移动
else:
print("搜索完毕")
文件夹设置如下: