Python3 将一个文件夹中的文件按一定数量分组批量复制到新的文件夹


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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM