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:
if x != y:
if filecmp.cmp(x, y):
os.remove(y)
这里的代码已经实现了大致逻辑,但有一个细节需要考虑到ÿ