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