import os import shutil import re #獲取指定文件中文件名 def get_filename(filetype): name =[] final_name_list = [] source_dir=os.getcwd()#讀取當前路徑 for root,dirs,files in os.walk(source_dir): for i in files: if filetype in i: name.append(i.replace(filetype,'')) final_name_list = [item +filetype for item in name] return final_name_list #返回由文件名組成的列表 #篩選文件,利用正則表達式 def select_file(str_cond,file_name_list): select_name_list =[] part1 = re.compile(str_cond)#正則表達式篩選條件 for file_name in file_name_list: if len(part1.findall(file_name)):#判斷其中一個文件名是否滿足正則表達式的篩選條件 select_name_list.append(file_name)#滿足,則加入列表 return select_name_list#返回由滿足條件的文件名組成的列表 #復制指定文件到另一個文件夾里,並刪除原文件夾中的文件 def cope_file(select_file_name_list,old_path,new_path): for file_name in select_file_name_list: shutil.copyfile(os.path.join(old_path,file_name),os.path.join(new_path,file_name))#路徑拼接要用os.path.join,復制指定文件到另一個文件夾里 os.remove(os.path.join(old_path,file_name))#刪除原文件夾中的指定文件文件 return select_file_name_list #主函數 def main_function(filetype,str_cond,old_path,new_path): final_name_list = get_filename(filetype) select_file_name_list = select_file(str_cond,final_name_list) cope_file(select_file_name_list,old_path,new_path) return select_file_name_list file_type = '.csv'#指定文件類型 str_cond = '-Dfn_info-'#正則條件 old_path = 'F:\\data\\text_1'#原文件夾路徑 new_path = 'F:\\data\\dfn_info'#新文件夾路徑 main_function(file_type,str_cond,old_path,new_path)#主函數