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