当前位置 博文首页 > 用python批量移动文件

    用python批量移动文件

    作者:风中狂笑 时间:2021-02-10 18:04

    我是用来移动图片的,其他格式的文档也是可以的,改下后缀列表就可以了

    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')

    然后再删除空文件夹

    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')
    js
    下一篇:没有了