我是用來移動圖片的,其他格式的文檔也是可以的,改下后綴列表就可以了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
import os,shutil import datetime #將文件夾里的圖片全部移動到新文件夾中 #revised by Stephen Shen 2020-3-10 09:28:50 def renameFile(dstpath): fdirname,fbasename = os.path.split(dstpath) #文件名相同但大小不同 fname,fext = os.path.splitext(fbasename) nowtime = datetime.datetime.now() strtime = str (nowtime.year) + str (nowtime.month) + str (nowtime.day) + str (nowtime.hour) + str (nowtime.minute) newfbasename = fname + '-' + strtime + fext dstpath = os.path.join(fdirname,newfbasename) return dstpath def moveFile(oldpath,newpath): if os.path.exists(newpath): newpath = renameFile(newpath) try : shutil.move(oldpath,newpath) print (oldpath + ' is moved' ) except : print (oldpath + ' is skipped' ) inpath = r 'K:\fileExtracted\imagesFromDocs' outpath = r 'K:\filesExtracted' image_ext = [ '.JPG' , '.jpg' , '.png' , '.PNG' , '.jpeg' , '.wdp' ] image_outpath = os.path.join(outpath, 'image' ) doc_ext = [ '.doc' , '.docx' ] doc_outpath = os.path.join(outpath, 'doc' ) emf_ext = [ '.emf' ] emf_outpath = os.path.join(image_outpath, 'emf' ) wmf_ext = [ '.wmf' ] wmf_outpath = os.path.join(image_outpath, 'wmf' ) if not os.path.exists(outpath): os.makedirs(outpath) if not os.path.exists(image_outpath): os.makedirs(image_outpath) if not os.path.exists(doc_outpath): os.makedirs(doc_outpath) if not os.path.exists(emf_outpath): os.makedirs(emf_outpath) if not os.path.exists(wmf_outpath): os.makedirs(wmf_outpath) for folder,subfolders,files in os.walk(inpath): for file in files: oldpath = os.path.join(folder, file ) if os.path.splitext( file )[ - 1 ] in image_ext: newpath = os.path.join(image_outpath, file ) moveFile(oldpath,newpath) elif os.path.splitext( file )[ - 1 ] in doc_ext: newpath = os.path.join(doc_outpath, file ) moveFile(oldpath,newpath) elif os.path.splitext( file )[ - 1 ] in emf_ext: newpath = os.path.join(emf_outpath, file ) moveFile(oldpath,newpath) elif os.path.splitext( file )[ - 1 ] in wmf_ext: newpath = os.path.join(wmf_outpath, file ) moveFile(oldpath,newpath) else : continue print ( 'done' ) |
然后再刪除空文件夾
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import os,shutil #將文件夾里的空文件夾刪除 #revised by Stephen Shen 2020-3-8 17:50:24 inpath = r 'E:\pics-moving\待分類照片' for folder,subfolders,files in os.walk(inpath): if not os.listdir(folder): shutil.rmtree(folder) # print(folder+' is empyt') print (folder + ' is deleted' ) print ( 'done' ) |
以上就是用python批量移動文件的詳細內容,更多關于python批量移動文件的資料請關注服務器之家其它相關文章!
原文鏈接:https://www.cnblogs.com/dogingate/p/12524319.html