需求:一個文件夾中有多個jpg文件和ans文件,將jpg文件按一定數量分組復制新的文件夾,
如果原文件夾中有同名的ans文件則一同復制到新文件夾中
參考資料地址:https://www.jb51.net/article/167794.htm
代碼:
1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 import os, glob 5 from shutil import copy 6 7 8 def copyFile(file_path, save_dir, count, dir_name): 9 #i是用來計算文件的數量,k是用來計算新建文件夾的數量 10 i = 0 11 k = 0 12 13 #如果目錄不存在,則創建 14 if not os.path.isdir(save_dir): 15 os.makedirs(save_dir) 16 17 #通過glob.glob來獲取原始路徑下,所有'.jpg'文件 18 imageList = glob.glob(os.path.join(file_path, '*.jpg')) 19 20 for allImgDir in imageList: 21 print(allImgDir) 22 #獲取文件名稱(包括后綴) 23 imgDir = os.path.basename(allImgDir) 24 print(imgDir) 25 #更改jpg文件后綴為ans 26 (temp1, temp2) = os.path.splitext(imgDir) 27 ansDir = temp1 + '.ans' 28 29 #拼接路徑與文件名 30 from_imgPath = file_path+'/'+imgDir 31 from_ansPath = file_path+'/'+ansDir 32 #新建的文件夾 33 to_path = save_dir + "\\" + dir_name + str(k) 34 35 # 如果 to_path 目錄不存在,則創建 36 if not os.path.isdir(to_path): 37 os.makedirs(to_path) 38 copy(from_imgPath, to_path) 39 if os.path.exists(from_ansPath): 40 #將ans文件遍歷復制到目標文件夾中 41 copy(from_ansPath, to_path) 42 i += 1 43 if((i%count) == 0): 44 print('新建一個文件夾') 45 k += 1 46 47 if __name__ == '__main__': 48 inputfile = input('請輸入想要拆分的文件夾路徑(如:E:/input/):') 49 outfile = input('請輸入想保存的根目錄(如:E:/666/):') 50 count = int(input('請輸入分組的數量(如:2):')) 51 dir_name = input('請輸入想保存的文件名字(如:圖片):') 52 #指定找到文件后,另存為的文件夾路徑 53 save_dir = os.path.abspath(outfile) 54 #指定文件的原始路徑 55 file_path = os.path.abspath(inputfile) 56 copyFile(file_path, save_dir, count, dir_name)