0
点赞
收藏
分享

微信扫一扫

使用Python以懒人的方式快速组织文件

zmhc 2022-01-13 阅读 46

1. 引言

有时我在电脑的 “下载” 文件夹中的存放很多类型的文件。看上去非常凌乱,
你有同样的问题吗?

在这里插入图片描述

那么是否可以开发一个简单的Python脚本,来帮助我们将该目录下的文件分门别类的组织好,即将相同类型的文件存放在同一个目录下,从而解放我们的双手呢?

答案当然是肯定的,接下来我们就来实现上述小工具吧。。。

2. 场景再现

不妨假设我们在Download目录下下载了3个类型的文件,这三个类型的文件后缀名是不同的。如下所示:

  • 文档文件(.pdf .docx 和 .txt)
  • 声音文件(.m4a .m4b 和 .mp3)
  • 图像文件 (.jpg .jpeg 和 .png)

j接着,我想将每个文件移动到具有预定义类别的文件夹中。

3. 代码实现

3.1 导入依赖库

这里我们需要导入os和pathlib库,用来处理路径,文件和目录,代码如下:

import os
from pathlib import Path

3.2 准备工作

这里我们需要定义每个类型的文件对应的存放目录,我们采用字典格式来实现,代码如下:

SUBDIR = {
          "DOCUMENTS":[".pdf",".docx",".txt"],
          "AUDIO":[".m4a",".m4b",".mp3"],
          "IMAGES":[".jpg",".jpeg",".png"]
        }

当然,我们可以根据实际情况对列表中的每个子项进行扩充。

3.3 获取文件目录

接着我们来实现从已知文件扩展名来选择所属目录的功能。这里我们只需循环并检查我们的文件扩展名,然后返回对应的类别即可。代码如下:

def pickDir(value):
    for category, ekstensi in SUBDIR.items():
        for suffix in ekstensi:
            if suffix == value:
                return category

3.4 主函数

将整个依据文件扩展名归档文件的功能,封装成函数,代码如下:

def organizeDir():
    for item in os.scandir():  
        #just looking for file, skip the directory
        if item.is_dir():
                continue
        filePath = Path(item)
        fileType = filePath.suffix.lower()
        directory = pickDir(fileType)
        
        #just skip, if the file extension not defined.
        if directory == None:
            continue
        
        directoryPath = Path(directory)
        #make new directory if the category's directory not found.
        if directoryPath.is_dir() != True:
                directoryPath.mkdir()
        filePath.rename(directoryPath.joinpath(filePath))

3.5 代码执行

接着我们来调用*organizeDir()*函数。代码如下:

organizeDir()

3.6 运行效果

代码运行前:
在这里插入图片描述
缩略图展示效果:
在这里插入图片描述
运行上述代码之后:
在这里插入图片描述
缩略图展示效果:
在这里插入图片描述

4. 总结

本文使用Python实现了快速将一个目录下的声音,文档和图像进行类别归档的功能,原理简单,但是可以极大地提升我们的工作效率。

最后,祝愿大家在日常生活中可以开发更多实用的小工具。

最最后, 您学废了吗?

参考

举报

相关推荐

0 条评论