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 获取文件目录
接着我们来实现从已知文件扩展名来选择所属目录的功能。这里我们只需循环并检查我们的文件扩展名,然后返回对应的类别即可。代码如下:
defpickDir(value):for category, ekstensi in SUBDIR.items():for suffix in ekstensi:if suffix == value:return category
3.4 主函数
将整个依据文件扩展名归档文件的功能,封装成函数,代码如下:
deforganizeDir():for item in os.scandir():#just looking for file, skip the directoryif 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实现了快速将一个目录下的声音,文档和图像进行类别归档的功能,原理简单,但是可以极大地提升我们的工作效率。
最后,祝愿大家在日常生活中可以开发更多实用的小工具。
最最后, 您学废了吗?
关注公众号《AI算法之道》,获取更多AI算法资讯。
关注公众号,后台回复 File,即可获取源代码。
参考
版权归原作者 赵卓不凡 所有, 如有侵权,请联系我们删除。