Python shutil模块实现文件夹整理

本文实现对文件夹中的文件分类拷贝,按照文件类型建立文件夹并移动相应文件到文件夹中,实现文件的自动分类管理。

Shutil模块可实现文件拷贝,移动重命名等功能,使用os.walk()遍历文件夹中文件。

直接上代码,调用函数,参数给定文件夹路径即可。

import shutil,os

def sortFile(folder):
    # 获取文件夹的绝对路径
    folder = os.path.abspath(folder)
    #建立一个“sorted”文件夹用以存储分类文件,判断文件夹中是否存在改文件,不存在就建立
    if "sorted" not in os.listdir(folder):
        os.makedirs(folder+"\\sorted")
    #遍历文件夹中文件
    for foldername ,subfolders, filenames in os.walk(folder):
        for filename in filenames:
            #由于有的文件没有后缀名,所以进行一个判断,把没有后缀名的文件丢到“other”文件夹中,否则就取文件后缀名命名分类文件夹
            filesplit = filename.split(".")
            if len(filesplit) < 2:
                filetype = "other"
            else:
                filetype = filesplit[-1]
            #print(filetype)
            new_folder = folder + "\\sorted"
            #拼合文件路径并建立文件夹
            filedir = os.path.join(new_folder,filetype)
            if filetype not in os.listdir(new_folder):
                os.makedirs(filedir)
                print("%s dir established"%filetype)
            #文件移动前后的路径
            oldfilepath = os.path.join(foldername,filename)
            newfilepath = os.path.join(filedir,filename)
            #因为文件夹中可能存在重复的文件,复制重复的文件会导致报错,出现错误时打印一个信息,继续后继工作
            try:
                shutil.copy(oldfilepath,newfilepath)
            except:
                print("a duplicated file")
                continue
            print("copy %s to %s"%(oldfilepath,newfilepath))

调用函数后文件按照后缀名分类自动放置到对应的文件夹中,如下图所示:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值