Python 条件查找文件,依照一个文件名称作为搜索条件,在另一个文件夹查找相同名称(不包括扩展名)的文件,移动到指定文件夹

    科技2022-08-21  109

    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("搜索完毕")

    文件夹设置如下:

     

    Processed: 0.016, SQL: 9