写点什么

10 行 Python 代码自动清理电脑内重复文件,解放双手!

作者:程序媛可鸥
  • 2022 年 3 月 21 日
  • 本文字数:1379 字

    阅读完需:约 5 分钟

今天分享一个系统层面的自动化案例:


「给定一个文件夹,使用 Python 检查给定文件夹下有无文件重复,若存在重复则删除」


主要涉及的知识点有:


  • os 模块综合应用

  • glob 模块综合应用

  • 利用 filecmp 模块比较两个文件


步骤分析


该程序实现的逻辑可以具化为:


遍历获取给定文件夹下的所有文件,然后通过嵌套循环两两比较文件是否相同,如果相同则删除后者。


实现问题的关键就变成了:


如何判断两个文件是否相同?


在这里我们可以使用 filecmp 模块,来看看官方的介绍文档:


  • filecmp.cmp(f1, f2, shallow=True)



  • 比较名为 f1 和 f2 的文件,如果它们似乎相等则返回 True,否则返回 False



  • 如果 shallow 为真,那么具有相同 os.stat() 签名的文件将会被认为是相等的;否则,将比较文件的内容。



所以可以这样使用:

假设 x 和 y 两个文件是相同的

print(filecmp.cmp(x, y))

True

解决了这个问题,我们就可以开始写代码了!


Python 实现


导入需要的库并设置目标文件夹路径


import os


import glob


import filecmp


dir_path = r'C:\xxxx'


接着遍历获取所有文件的绝对路径,我们可以利用 glob 模块的通配符结合 recursive 参数即可完成,代码如下:


for file in glob.glob(path + '/**/*', recursive=True):


pass


由于遍历获取每一个文件或者文件夹后,需要判断是否是文件,如果是文件则可能将绝对路径存放到列表中


这里需要再完成两个事情:


1、首先创建一个空列表,后面用 list.append(i) 添加文件路径 接着利用 os.path.isfile(i) 判断是否是文件,返回


2、True 则执行添加元素的操作


具体代码如下:


file_lst = []


for i in glob.glob(dir_path + '/**/*', recursive=True):


if os.path.isfile(i):


file_lst.append(i)


上一步我们获取了目标文件夹下的所有文件路径,接下来就可以嵌套遍历这个路径列表,其中 filecmp.cmp 进行文件判断,os.remove 进行文件删除


for x in file_lst:


for y in file_lst:


如果你也是看准了 Python,想自学 Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析 Python 兼职、就业行情前景的这些事儿。

一、Python 所有方向的学习路线

Python 所有方向路线就是把 Python 常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。


二、学习软件

工欲善其必先利其器。学习 Python 常用的开发软件都在这里了,给大家节省了很多时间。


三、全套 PDF 电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。


四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习



方法是在理解之后运用它们,这时候练手项目就很适合了。



四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。


五、面试资料

我们学习 Python 必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。



成为一个 Python 程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!最后祝你好运!!!

用户头像

Python编程资料加Q群免费领取:419829237 2022.03.14 加入

还未添加个人简介

评论

发布
暂无评论
10 行 Python 代码自动清理电脑内重复文件,解放双手!_Python_程序媛可鸥_InfoQ写作平台