
Python自动化办公之删除重复的视频文件

01
获取所有文件路径
import os
import filecmp
file_list=[]
new_list=[]
path=r"F:FileRecv删除文件测试"
for a,b,c in os.walk(path):
# print(a)
for j in c:
file=a+'\'+j
# print(file)
file_list.append(file)
效果图:
代码说明:使用os.walk(path)方法来获取所有文件名,循环添加进一个列表。
02
获取所有重复文件,添加到一个列表
for index,file_name1 in enumerate(file_list):
# 每循环一次就切片生成file_name1之后的列表file_list2
file_list2 = file_list[index +1:]
if len(file_list2) == 1:
break
for file_name2 in file_list2:
res1 = filecmp.cmp(file_name1,file_name2, shallow=True)
if res1:
new_set.add(file_name1)
print(new_set)
效果图:
代码说明:这里主要是循环取值的应用,以及用到了filecmp这个文件对比库。
03
删除重复文件
for i in new_set:
os.remove(i)
效果图:
删除前
删除后
代码说明:重要的事情说三遍!
删除需谨慎!最好有备份!
删除需谨慎!最好有备份!
删除需谨慎!最好有备份!

filecmp库知识拓展:
filecmp是python内置的一个模块,用于比较文件及文件夹的内容。
filecmp由两个主要的方法,filecmp.cmp(f1, f2, [shallow])和filecmp.cmpfiles(a, b, common, [shallow])。
1、如果单纯比较两个文件是否相同,可以通过filecmp.cmp(f1, f2, shallow=True)实现。其中f1、f2是文件名,shallow=True,则通过文件的元信息比较是否一致,如果是False,则比较两个文件内容。
2、如果非递归比较两个目录中的一组文件,可以选择通过filecmp.cmpfiles(dir1, dir2, common, shallow=True)实现。其中dir1、dir2是两个文件夹,common是list,里面是需要比较的共同文件名称。
END

© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容