Python根据文件后缀实现文件夹整理

 更新时间:2024年02月06日 09:39:50   作者:微小冷  
这篇文章主要为大家详细介绍了Python如何根据文件后缀实现文件夹整理,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的可以参考下

文件类型字典

根据熵增原理,我们的文件夹在经过一段时间之后会变得混乱不堪,尤其是桌面和下载文件夹,找个东西会十分费劲,特别影响效率,所以用Python做一个文件夹整理小工具还是很有必要的。

而最常见的整理方法,就是按照文件类型,比如按照下表对文件进行归类

文件夹文件类别
图片“.jpg”, “.png”, “.jpeg”, “.gif”
视频“.mp4”, “.mkv”
音乐“.mp3”, “.wav”
文档“.pdf”
文本“.csv”, “.txt”
源码“.py”, “.c”, “.cpp”, “.php”
office“.docx”,“.xlsx”, “.pptx”, “.doc”, “.ppt”, “.xls”
压缩包“.zip”, “.tgz”, “.rar”, “.tar”, “.7z”
安装包“.msi”, “.exe”

为了实现这个目标,可以先做一个文件类型字典,来绑定文件类型和后缀

fDct = {
    "图片"  : [".jpg", ".png", ".jpeg", ".gif"],
    "视频"  : [".mp4", ".mkv"],
    "音乐"  : [".mp3", ".wav"],
    "文档"  : [".pdf"],  
    "文本"  : [".csv", ".txt"],
    "源码"  : [".py", ".c", ".cpp", ".php"],
    "office": [".docx",".xlsx", ".pptx", ".doc", ".ppt", ".xls"],
    "压缩包": [".zip", ".tgz", ".rar", ".tar", ".7z"],
    "安装包": [".msi", ".exe"],
}

而文件整理的逻辑是,先创建图片、视频等文件夹,然后通过文件的后缀找到其对应的文件类别,然后移动到相应的文件夹。为了更加便捷地实现这个功能,做一个反向的字典,用以通过后缀返回文件夹

exDct = {}
for key in fDct:
    exDct.update({ex:key for ex in fDct[key]})

移动文件

接下来就是移动文件,这里面有两个问题,一是目标文件夹不存在,则需要新建;二则是目标文件夹中已经有了同名文件,那么则需要报错

import os
import shutil
pJoin = os.path.join
pExist = os.path.exists

def mvFile(src, dst):
    if not pExist(dst):
        os.makedirs(dst)
    try:
        shutil.move(src, dst)
        return True
    except Exception as e:
        print(e)
        return False

主流程

接下来就是整个文件夹整理的主流程,第一步通过os.listdir得到所有文件名;第二步,遍历所有文件名,如果这个文件名的后缀刚好就在我们的后缀字典中,那么就将这个文件移动到对应文件类型的文件夹里。

from pathlib import Path

# tar是准备整理的文件夹
def sortFiles(tar):
    files = os.listdir(tar)
    fsErr = []
    for f in files:
        src = pJoin(tar, f)
        ex = Path(src).suffix.lower()
        if ex not in exDct: continue
        dst = pJoin(tar, exDct[ex])
        if not mvFile(src, dst):
            fsErr.append(src)
    if len(fsErr) == 0:
        return "全部文件移动成功"
    else:
        return "以下文件移动失败:\r\n"  + "\r\n".join(fsErr)

执行效果如下,即下载文件夹中的文件都被移动到这几个文件夹夹中了。

以上就是Python根据文件后缀实现文件夹整理的详细内容,更多关于Python文件夹整理的资料请关注脚本之家其它相关文章!

相关文章

  • Python参数传递中双星号(**)和单星号(*)是作用

    Python参数传递中双星号(**)和单星号(*)是作用

    双星号(**)和单星号(*)在参数传递中扮演着关键角色,本文主要介绍了Python参数传递中双星号(**)和单星号(*)是作用,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 详解python polyscope库的安装和例程

    详解python polyscope库的安装和例程

    这篇文章主要介绍了python polyscope库的安装和例程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • django 模型字段设置默认值代码

    django 模型字段设置默认值代码

    这篇文章主要介绍了django 模型字段设置默认值代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python hexstring-list-str之间的转换方法

    Python hexstring-list-str之间的转换方法

    今天小编就为大家分享一篇Python hexstring-list-str之间的转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python3.4 splinter(模拟填写表单)使用方法

    Python3.4 splinter(模拟填写表单)使用方法

    今天小编就为大家分享一篇Python3.4 splinter(模拟填写表单)使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python 实现turtle画图并导出图片格式的文件

    python 实现turtle画图并导出图片格式的文件

    今天小编就为大家分享一篇python 实现turtle画图并导出图片格式的文件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pandas去除重复值的实战

    pandas去除重复值的实战

    本文主要介绍了pandas去除重复值的实战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Python自动化实现日报数据可视化

    Python自动化实现日报数据可视化

    这篇文章主要为大家详细介绍了如何使用Python实现自动化生成日报数据可视化,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • 数据库连接池DBUtils的安装使用方法

    数据库连接池DBUtils的安装使用方法

    DBUtils是Python的一个用于实现数据库连接池的模块,这篇文章主要介绍了数据库连接池DBUtils的安装使用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Python图像处理模块ndimage用法实例分析

    Python图像处理模块ndimage用法实例分析

    这篇文章主要介绍了Python图像处理模块ndimage用法,结合实例形式分析了Python图像处理模块ndimage基本功能及常见的图形运算操作实现技巧,需要的朋友可以参考下
    2019-09-09

最新评论