浩克网 手游攻略 软件教程 10 行 Python 代码自动清理电脑内重复文件,解放双手

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

时间:2025-05-22 11:13:08 来源:网络整理 浏览:0

来源|早期Python

Toutu |视觉。。

前言大家好,又是Python办公自动化系列。

今天分享一个系统级自动化案例:

给定一个文件夹,使用Python检查给定文件夹中是否有重复文件,如果有,则删除它们

涉及的主要知识点有:

操作系统模块的综合应用

glob模块的综合应用

用filecmp模块比较两个文件。

步骤分析该程序实现的逻辑可以体现为:

遍历给定文件夹中的所有文件,然后通过嵌套循环成对比较文件,如果相同就删除后者。

意识到这个问题的关键就变成了

如何判断两个档案是否相同?

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

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

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

如果shallow为true,则具有相同os.stat签名的文件将被视为相等。否则,将比较文件的内容。

所以可以这样用。

#假设两个文件X和Y是相同的print(filecmp.cmp(x,y))# True

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

Python实现了导入所需的库并设置目标文件夹路径。

import osimport globimport filecmpdir_path=r'C:\\xxxx'

然后遍历得到所有文件的绝对路径,我们可以使用glob模块的通配符结合递归参数来完成。框架如下:

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

因为遍历每个文件或文件夹后,需要判断是否是文件。如果是文件,绝对路径可以存储在列表中。这里,需要完成两件事:

首先,创建一个空列表,然后用list.append(i)添加文件路径。

然后用os.path.isfile(i)判断是否是文件,如果是,则添加一个元素。

具体代码如下

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: if x !=y: if filecmp.cmp(x, y): os.remove(y)

这里的代码实现了一般的逻辑,但是有一个细节需要考虑:有可能循环到之前判断已经删除的文件,导致os.remove(file)报错,因为该文件不存在。

因此,可以使用os.path.exists来判断文件是否存在,如下所示:

for x in file_lst: for y in file_lst: if x !=y and os.path.exists(x) and os.path.exists(y): if filecmp.cmp(x, y): os.remove(y)

这样,一个简单的文件重复数据删除小程序就完成了,完整的代码如下:

import osimport globimport filecmpdir_path=r'C:\xxxx'file_lst=for i in glob.glob(dir_path + '/**/*', recursive=True): if os.path.isfile(i): file_lst.append(i)for x in file_lst: for y in file_lst: if x !=y and os.path.exists(x) and os.path.exists(y): if filecmp.cmp(x, y): os.remove(y)

标题:10 行 Python 代码自动清理电脑内重复文件,解放双手
链接:https://www.52hkw.com/news/rj/63034.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
Tiktok专用的梯子加速器(TK加速器全球加速)

Tiktok作为当前最火爆的短视频平台,受到了全球用户的热烈欢迎。然而,由于网络限制或者其他原因,很多用户在观看

2025-05-22
怎么不让快递放菜鸟驿站

菜鸟裹裹怎么禁止放快递?经常网购的小伙伴都知道,如果附近有菜鸟驿站,那么驿站的快递员会默认选择放在驿站中,并

2025-05-22
德国游戏排行榜前十名(德国出品的游戏)

中国的玩家可能在新闻里听过德国科隆游戏展,但对德国的游戏却感觉很陌生。游戏玩家大部分多少应该都体验过SL

2025-05-22
菜鸟驿站怎么送货上门

菜鸟裹裹怎么送货上门?有过菜鸟驿站拿快递的小伙伴都知道,很多菜鸟驿站在派送快递时,默认是放在菜鸟驿站,需要我

2025-05-22