用python批量移动文件

这篇文章主要介绍了如何用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-600','.png-600','.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')

然后再删除空文件夹

 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批量移动文件的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python