我以前经常把下载的东西放在桌面或者“下载”文件夹中,使用后再也没管它,久而久之文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档。

不知道你是不是有过跟我一样糟糕的体验,不过,前段时间我用Python做了一个根据后缀名整理文件的工具,先来看看效果:

自动整理前:

自动整理后:

效果非常好,舒服多了,如果你想要直接下载源代码试试看,请在公众号后台回复 文件自动整理 获得源代码下载地址。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。

你只需要修改源代码主程序中调用 auto_organize函数的参数即可完成对对应文件夹的整理,比如我想整理  C:\Users\83493\Downloads 文件夹:

if __name__ == "__main__":auto_organize(r"C:\Users\83493\Downloads")

如上所示,修改代码第61行的文件夹地址即可。修改完成后运行该脚本:

python auto_files.py

就能瞬间完成对指定文件夹的整理,极其方便。

2.原理

这份代码的原理很简单,为了整理这些文件,我们要遍历当前指定的文件夹:如果是文件夹则跳过,如果是文件则检测后缀,分类到对应的文件夹中。文件夹名字及其对应的文件后缀如下:

DIRECTORIES = {"图片": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg",".heif", ".psd"],"视频": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng",".qt", ".mpg", ".mpeg", ".3gp", ".mkv"],"文档": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods",".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt","pptx",".csv",",pdf"],"压缩文件": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z",".dmg", ".rar", ".xar", ".zip"],"影音": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3",".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],"文本": [".txt", ".in", ".out"],"编程": [".py",".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],"可执行程序": [".exe"],
}

接下来是自动整理的部分代码,先遍历指定的文件夹,识别后缀并分类到对应的文件夹中。

for entry in os.scandir(dirval):if entry.is_dir():# 如果是文件夹则跳过continuefile_path = Path(dirval + "\\" + entry.name)file_format = file_path.suffix.lower()# 避免后缀大小写判断问题,全转为小写if file_format in FILE_FORMATS:directory_path = Path(dirval + "\\" + FILE_FORMATS[file_format])directory_path.mkdir(exist_ok=True)file_path.rename(directory_path.joinpath(entry.name))

还有出现不存在在我们字典里的后缀的情况,把它们分类到名为 其他文件 的文件夹中:

try:os.mkdir(dirval + "\\" +"其他文件")
except:passfor dir in os.scandir(dirval):try:if dir.is_dir():# 删除空文件夹os.rmdir(dir)else:temp = str(Path(dir)).split('\\')# 分割文件路径path = '\\'.join(temp[:-1])print(path + '\\其他文件\\' + str(temp[-1]))os.rename(str(Path(dir)), path + '\\其他文件\\' + str(temp[-1]))except:pass

3.自定义整理

如果你并不想按照设定好的文件整理,希望能自定义地将某些特定后缀的文件放到另一个文件夹,比如 .py 文件统一收纳到“Python脚本”文件夹中,你可以这么改 DIRECTORIES 变量:

改动前:

DIRECTORIES = {# ......"编程": [".py",".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],# ......
}

改动后:

DIRECTORIES = {# ......"编程": [".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],"Python脚本": [".py"],# ......
}

你可以按照这个方法,自定义收纳那些你需要整理收纳的文件格式。

如果你只想对 DIRECTORIES 变量里那些后缀的文件进行整理,不属于这些后缀的文件则不进行整理,不需要放到“其他文件”目录下,此时要怎么做?

很简单,你只需要删除以下部分代码就可以完成这个功能:

# ......try:os.mkdir(dirval + "\\" +"其他文件")except:passfor dir in os.scandir(dirval):try:if dir.is_dir():# 删除空文件夹os.rmdir(dir)else:temp = str(Path(dir)).split('\\')# 分割文件路径path = '\\'.join(temp[:-1])print(path + '\\其他文件\\' + str(temp[-1]))os.rename(str(Path(dir)), path + '\\其他文件\\' + str(temp[-1]))except:pass
# ......

怎么样,是不是很方便?如果这个简单的脚本帮助到了你,请转发给需要的人哦。

在上面原理一节中我已经将所有源代码都讲完了,如果你不想复制粘贴,也可以在Python实用宝典公众号后台回复 文件自动整理 获得完整源代码下载地址。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

一键自动整理文件!简单好用的Python脚本相关推荐

  1. 教你写个简单好用的Python脚本一键自动整理文件非常适合办公用~

    导语 小编以前经常把下载的东西放在桌面或者"下载"文件夹中,使用后再也没管它,久而久之文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档. 不知道你是 ...

  2. 一键自动整理文件!简单好用的 Python 脚本

    我以前经常把下载的东西放在桌面或者 "下载" 文件夹中,使用后再也没管它,久而久之文件夹就变得乱七八糟,再整理的时候非常痛苦,巴不得有一个自动化的工具帮我归类文档 不知道你是不是有 ...

  3. 用Python脚本一键自动整理文件,轻松办公

    嗨嗨,大家下午好~ 我是小圆 因为自己对于电脑上的文件不怎么爱整理,经常把下载好的东西就随意的放在桌面上或者"下载"文件夹中,就使用过后再也没去管它了.久而久之,文件夹就变得乱七八 ...

  4. python3 自动整理文件(超简单代码)

    思路: 1.在该文件夹里面创建子文件夹 2.判断该文件夹里面所有文件的格式,也就是什么后缀名 3.将文件进行重命名并放入刚创建好的子文件夹中 4.两种整理办法: (1)利用shutil.copy这个函 ...

  5. python文件整理程序_Python实现自动整理文件的脚本

    前言 工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢.整个桌面杂乱无章全是文档和资料.几乎快占满整个屏幕了,所有我必须要整理一下了.但是手动整理太费时间了,于是我想到了python. ...

  6. .mat文件批量转成图片——python脚本编写

    .mat文件批量转成图片--python脚本编写 mat文件简介 mat文件是Matlab的数据存储的标准格式.mat文件是标准的二进制文件,还可以ASCII码形式保存和加载,在MATLAB中打开显示 ...

  7. python自动整理文件,就这么简单

    平时工作没有养成分类的习惯,整个桌面杂乱无章都是文档和资料,几乎快占满整个屏幕了.所以必须要整理一下了,今天我们来看下用python如何批量将不同后缀的文件移动到同一文件夹. 演示效果: 使用前 使用 ...

  8. 自动整理文件夹(Droplt使用教程)

    需求描述 每次我在QQ下载了东西,会很多很乱,现在我想每次文件夹变化之后就自动根据文件后缀移动 文件夹增加后自动调用 根据文件后缀移动 实现过程 本来我是想自己实现一套的,结果大概搜了一下找到了Dro ...

  9. python minimize_简单三步实现Python脚本超参数调优(附代码)

    作者:Jakub Czakon, Neptune.ai 翻译:陈之炎 校对:和中华 本文约1500字,建议阅读5分钟. Python机器学习模型建立起来之后,如何对它的性能进行优化?按照本指南中的三个 ...

最新文章

  1. OpenGL函数库详解
  2. 北京科技大学研究生考试 《工程热力学》(2003年-2011年)
  3. hadoop HA启动时 两个namenode节点都是standby,解决办法
  4. go int 转char_GO语言实现 一 栈和队列
  5. 2020年中国职业教育行业白皮书
  6. vscode生成代码图片_vs Code 快速生成代码
  7. Quartus II 9.0sp1之功能仿真
  8. C++解析char *p与char p[]
  9. 使用treeNMS管理及监控Redis
  10. 大众点评App的短视频耗电量优化实战
  11. Visual Studio中C++关于Unicode字符集和多字节字符集
  12. dsp中C语言线性缓冲,TI C64x+ DSP CACHE 一致性分析与维护
  13. 如何保养可让自己年轻10岁?/经常熬夜的人要怎样保养自己的身体?
  14. SAP ABAP APO计划订单生产日期调整
  15. index函数python什么意思,python index函数是什么
  16. js:ajax的get方法实现简单的搜索框提示
  17. Photoshop PS图层混合模式详解
  18. fedora 18 Could not load firmware xc3028-v27
  19. 编写操作norflash的裸机程序
  20. 超融合网络常见问题及解决思路

热门文章

  1. poi3.13生成多级标题
  2. A.3 实验3:动态导航栏
  3. 计算机b级考试基础知识,全国计算机等级考试一级b
  4. C#建立控件数组,实现控件批量操作
  5. PyQt5窗口最小化后,任务栏窗口预览(Windows速览)持续刷新(C++ Qt同理)
  6. 机器学习中的数学——矩阵和向量相乘
  7. 13.微信小程序(JS逻辑文件)
  8. Flink RPC 详解
  9. 三星s6 android 5.1.1,或开放特性 三星S6欲推安卓5.1.1
  10. python 知识图谱demo_古诗词知识图谱Demo