首页 > 编程语言 >十行python代码实现文件去重,去除重复文件的脚本

十行python代码实现文件去重,去除重复文件的脚本

时间:2024-01-13 16:34:11浏览次数:23  
标签:files 文件 index python list 十行 file path

1.导入依赖

'''导入依赖'''

from pathlib import Path

import filecmp

2.函数说明

filecmp.cmp(path1, path2, shallow=True)

path1/path2:待比较的两个文件路径。

shallow :默认为True,即只比较os.stat()获取的元数据(创建时间,大小等信息)是否相同,
设置为False的话,在对比文件的时候还要比较文件内容。

3.提取待去重文件路径

# 初始化文件路径列表
path_files_list = []

# 遍历
for path in Path(r'/usr/load/data').iterdir():

    # 校验是否为文件
    if path.is_file():
        # 加入到待去重文件列表
        path_files_list.append(path)
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
# 遍历待去重文件
for file_index in range(len(path_files_list) - 1):

    # 遍历,两辆比对
    for later in range(file_index + 1, len(path_files_list)):

        # 校验内容是否相同
        if filecmp.cmp(path_files_list[file_index], 
path_files_list[later], shallow=False):

            # 内容相同、则删除
            path_files_list[file_index].unlink()
            break

标签:files,文件,index,python,list,十行,file,path
From: https://www.cnblogs.com/djdjdj123/p/17962516

相关文章

  • python经典有序序列的list列表推导式
    生成一个数据列表#初始化一个列表list_1=[]#使用循环生成一个列表数据forvalinrange(0,20,1):#加入集合list_1.append(val)#打印列表数据print(list_1)#[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]使用列表推导式生......
  • Python 潮流周刊第 35 期(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。周刊全文:https://pythoncat.top/posts/2024-01-13-weekly以下是本期摘要:......
  • 这一次,弄明白JS中的文件相关(一):概念篇
    概念是学习的基础。在学习JS中的文件操作之前,先把文件相关的各种概念搞清楚,很有好处。 1.二进制:计算机硬件仅能处理和存储二进制数据,所以不管是你正在写的代码,还是你硬盘里的小姐姐,都是以二进制的形式存储于电脑的内存和硬盘里的。2.编码规则:二进制计算机看得懂,我们看......
  • [Python学习记]个人感受(持续更新)
    ------24/01/13------ 大家好,到目前为止我已经学习到if条件语句的使用了,准备学习循环语句,if语句学的薄浅还得多加练习实际应用!关于if的应用我自主设计了几个程序,希望大佬可以多加指点 ------23/11/13------ 大家好,我是小县城高中的一名学生 在我初中时期就已经知道主......
  • 文件显示.[[email protected]].2700的后缀,中勒索病毒了
    勒索病毒是一种新型电脑病毒,主要通过邮件、程序木马、网页挂马等形式进行传播。一旦感染,它会利用各种加密算法对文件进行加密,被感染者一般无法解密,必须拿到解密的私钥才有可能破解。该病毒会修改壁纸,在桌面等明显位置生成勒索提示文件,指导用户去缴纳赎金。攻击的样本以exe、js、wsf......
  • 【Linux】Java文件IO之普通IO与Buffer IO
    在Java中,输入输出(IO)操作是编程中一项重要的任务。无论是从外部文件中读取数据,还是向文件写入数据,或者是与用户进行交互,都需要用到IO操作。普通IOFileOutputStream的使用FileOutputStream是Java中的一个类,属于java.io包。它用于将数据写入文件。当你需要将数据(通常是字节或字符)写入......
  • RK3568 学习笔记 : 解决 linux_sdk 编译 python 版本报错问题
    前言最近买了【正点原子】的RK3568开发板,下载了开发板的资料,包括LinuxSDK,这个LinuxSDK占用的空间比较大,扩展了一下VM虚拟机ubuntu20.04的硬盘空间,编译才正常通过。编译RK3568LinuxSDK时,遇到python版本的问题,这里做个记录【正点原子】rk3568开发板资料与Lin......
  • ubuntu 20.04 自由切换 python 的版本
    问题描述当前ubuntu20.04默认安装了多个python的版本,执行python时,默认版本是Python2.7.18zhangsz@zhangsz:~$pythonPython2.7.18(default,Jul12022,12:27:04)[GCC9.4.0]onlinux2Type"help","copyright","credits"or"license"......
  • 【SVN】代码仓库增加配置.svnignore 文件,忽略不上传同步的文件夹
    1.编辑.svnignore文件新建.svnignore文件,将需要忽略的文件夹名称放入,比如下面例子datasetsdatasets_classdatadatasshujuweightsweightdatasetx64buildx86outputoutputsinference_outputs*.build*.distdistActiondemologslog__pycache__*.pt*.onnx*.e......
  • 手拉手Springboot获取yml配置文件信息
    环境介绍技术栈springboot3软件版本mysql8IDEAIntelliJIDEA2022.2.1JDK17SpringBoot3.1.7配置文件说明:启动配置文件优先级:properties高于yml配置文件application.ymlyml是JSON的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代application.properties。在创建一个S......