1. 程式人生 > 程式設計 >用python批量移動檔案

用python批量移動檔案

我是用來移動圖片的,其他格式的文件也是可以的,改下字尾列表就可以了

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,newpath)
elif os.path.splitext(file)[-1] in emf_ext:
newpath=os.path.join(emf_outpath,newpath)
elif os.path.splitext(file)[-1] in wmf_ext:
newpath=os.path.join(wmf_outpath,newpath)
else:
continue

print('done')

然後再刪除空資料夾

import os,shutil

#將資料夾裡的空資料夾刪除
#revised by Stephen Shen 2020-3-8 17:50:24

inpath=r'E:\pics-moving\待分類照片'

for folder,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批量移動檔案的資料請關注我們其它相關文章!