导语

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

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

自动整理前:

自动整理后:

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

1.准备

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

你只需要修改源代码主程序中调用 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
# ......

怎么样,是不是很方便?

end

好了这期分享就到这了~

喜欢记得给小编个三连再走也不迟噢!家人们的支持就是小编更新最大的动力啦

想领取更多完整源码跟Python学习资料的可点击这行哦

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

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

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

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

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

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

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

  4. bat脚本中获取上级目录_使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件...

    使用Python写一个可以监控Tomcat 运行的脚本,并且把.py文件转换成.exe文件 文章来源与博主本人的CSDN博客,博客地址:https://blog.csdn.net/weixin_435 ...

  5. 我帮公司财务写了个“群发工资条”的Python脚本

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个 ...

  6. python对财务人员的帮助-帮公司财务妹子写了个“群发工资条”的Python脚本!

    hi,大家好,我是朱小五 两周前我发了一篇办公自动化的文章,本来决定最近这个月就不发同类型的了. 结果正如你们所见: 因为这真的是一个很好的Python自动化的案例!!! 所以即使打脸也要推荐给大家! ...

  7. 我帮公司财务写了个“群发工资条”的Python脚本!

    1.本文介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮件,就太浪费时间了.鉴于此, ...

  8. python 解除excel的密码_我帮公司财务写了个“群发工资条”的Python脚本!

    1.本文介绍 这是一个很好的Python自动化的案例.对于小公司,采用手动方式一个个发送邮件还是可以的.如果一个上百号,上千号,或者更大规模的公司,我们再一个个发送工资条邮件,就太浪费时间了.鉴于此, ...

  9. python发微信工资条_帮公司财务妹子写了个“群发工资条”的Python脚本!

    hi,大家好,我是朱小五 两周前我发了一篇办公自动化的文章,本来决定最近这个月就不发同类型的了. 结果正如你们所见: 因为这真的是一个很好的Python自动化的案例!!! 所以即使打脸也要推荐给大家! ...

最新文章

  1. 函数或变量 rtenslearn_c 无法识别_Stata:过度识别检验一文读懂
  2. php 单词替换,如何在PHP中替换字符串中的单词?
  3. python中用来回溯异常的模块_python学习笔记(异常)
  4. 前端学习(1303):复制文件夹
  5. mysql explain 派生表_MySQL的Explain命令
  6. 宝石光是什么石头_天龙八部:尖晶石当初烂大街,现如今比红宝石还贵,售价150金...
  7. java.util.list 报错_Java 报错 .updateValue' has an unsupported return type: interface java.util.List...
  8. Git——版本管理工具(一)
  9. 廖雪峰 - nodejs教程
  10. linux离线安装pg数据库
  11. 基于单片机的智能温度监测系统设计(电路图+程序)
  12. 3DMax与Unity统一长度单位和轴
  13. android单选题数据库,数据库系统工程师题库
  14. 量化投资学习——股指期货研究(八)
  15. phpstorm 配置 xdebug断点调试
  16. 随机洗牌算法+matlab,洗牌算法及 random 中 shuffle 方法和 sample 方法浅析
  17. 关于小白如何查看自己的文章是否被EI检索
  18. 接口显示返回值正常,但是拿到的值却是undefined?
  19. Slick.js使用方法——幻灯片
  20. 一文了解前端与全栈工程师!

热门文章

  1. centos7启动盘制作
  2. matlab_矩阵和数组
  3. 【水滴石穿】MyFirstRNDemo
  4. 三十三、数据库相关4
  5. 视频插帧(Video Frame interpolation)论文及源码
  6. 大神F2安装google服务框架教程
  7. 扩展和定制Heritrix2
  8. window 系统下修改`CMD`的编码格式的方法,`CHCP` 的 使用
  9. python连接微信接口开发教程_Python调用微信公众平台接口操作示例
  10. JVM垃圾回收器介绍