需求:一个文件夹中有多个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)