隨筆記錄方便自己和同路人查閱。
#------------------------------------------------我是可恥的分割線-------------------------------------------
假如你想把一個路徑下的某格式文件都復制到另一個文件夾中,如果文件較多,手動復制可能會比較繁瑣和麻煩,重要的是還可能復制錯了,所以你希望有
一段程序幫你完成這個繁瑣且容易出錯的工作。
#------------------------------------------------我是可恥的分割線-------------------------------------------
將指定目錄下的指定格式文件復制到想要的目錄下,示例代碼:
#! python 3 # -*- coding:utf-8 -*- # Autor: Li Rong Yang ''' Copy指定格式的文件到新文件夾 ''' import shutil,os #定義函數,接收傳入的值 def SFileToDFile(sourcefile,fileclass,destinationfile): #遍歷目錄和子目錄 for filenames in os.listdir(sourcefile): #取得文件或文件名的絕對路徑 filepath = os.path.join(sourcefile,filenames) #判斷是否為文件夾 if os.path.isdir(filepath): #如果是文件夾,重新調用該函數 SFileToDFile(filepath,fileclass,destinationfile) #判斷是否為文件 elif os.path.isfile(filepath): #如果該文件的后綴為用戶指定的格式,則把該文件復制到用戶指定的目錄 if filepath.endswith(fileclass): #dirname = os.path.split(filepath)[-1] #給出提示信息 print('Copy %s'% filepath +' To ' + destinationfile) #復制該文件到指定目錄 shutil.copy(filepath,destinationfile) #函數調用 SFileToDFile('d:\\quiz','.txt','d:\\test')
運行結果:根據運行結果可以看出復制的文件有哪些,和復制到了那個目錄下
假如你想刪除指定的文件,可以這樣寫,示例代碼:
#! python 3 # -*- coding:utf-8 -*- # Autor: Li Rong Yang ''' Copy指定格式的文件到新文件夾 ''' import shutil,os,send2trash #定義函數,接收傳入的值 def SFileToDFile(sourcefile,fileclass,destinationfile): #遍歷目錄和子目錄 for filenames in os.listdir(sourcefile): #取得文件或文件名的絕對路徑 filepath = os.path.join(sourcefile,filenames) #判斷是否為文件夾 if os.path.isdir(filepath): #如果是文件夾,重新調用該函數 SFileToDFile(filepath,fileclass,destinationfile) #判斷是否為文件 elif os.path.isfile(filepath): #如果該文件的后綴為用戶指定的格式,則把該文件復制到用戶指定的目錄 if filepath.endswith(fileclass): #dirname = os.path.split(filepath)[-1] #給出提示信息 #print('Copy %s'% filepath +' To ' + destinationfile) print('Delet %s to recycle bin.'%filepath) #刪除文件 send2trash.send2trash(filepath) # 復制該文件到指定目錄 #shutil.copy(filepath,destinationfile) #函數調用 SFileToDFile('d:\\quiz','.txt','d:\\test')
運行結果: