Python办公自动化——8行代码实现文件去重

  • 需求描述
  • 撸代码ing

需求描述

上周突然接到一个任务,要通过XX网站导出XX年-XX年之间的数据,导出后的文件名就是对应日期,导出后发现,竟然有的文件大小是一样,但文件名又没有重复,所以打开文件看了下,确实重复了,原因暂时不清楚,预测是网站的原因,最后发现大概只有 30% 的数据没有重复。我淦!

啥也不说,首要任务还是把那些没有重复的文件给筛选出来,或是删除重复的文件。文件很多几百个,通过一个个的对比文件去删除估计又要加班,然后突然想到 Python 有个内置的 filecmp 能够貌似是比较文件的,于是乎就有了这篇文章~

撸代码ing

导出的文件都是保存在同一文件夹下的,格式也相同。然后,上网查了下 filecmp.cmp() 的用法。

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

  • f1/f2:待比较的两个文件路径。
  • shallow :默认为True,即只比较os.stat()获取的元数据(创建时间,大小等信息)是否相同,设置为False的话,在对比文件的时候还要比较文件内容。
from pathlib import Path
import filecmppath_list = [path for path in Path(r'C:\Users\pc\Desktop\test').iterdir() if path.is_file()]for front in range(len(path_list) - 1):for later in range(front + 1, len(path_list)):if filecmp.cmp(path_list[front], path_list[later], shallow=False):path_list[front].unlink()    # 删除文件break

为了防止代码有问题,我先创建了一个 test 文件夹,在文件夹下手动创建了6个文件,1~5中只有1,2,3,4,5对应的数字内容,第6个为空文件。
之后再将文件全部复制一份。


▶️运行效果


Python办公自动化——8行代码实现文件去重相关推荐

  1. Python百日百行代码挑战-day8,day9,day10,游戏实战系列-五子棋

    Python百日百行代码挑战-day8,day9,day10,游戏实战系列-五子棋 写在前面 需要用到的工具包和参考 游戏设定 初始化 切换下棋方 判断五子连珠(核心) 鼠标点击流程事件 成品展示 打 ...

  2. Python简单几行代码实现黑客电影镜头屏幕画面

    Python简单几行代码实现黑客电影镜头屏幕画面 通过几行简单的Python代码实现炫酷的数据流动效果 一.Python版本:Python3 二.操作示范 为了显得更加牛逼 逼真,通常不会直接运行源代 ...

  3. 教你用python实现34行代码爬取东方财富网信息,爬虫之路,永无止境!!

    教你用python实现34行代码爬取东方财富网信息,爬虫之路,永无止境!! 代码展示: 开发环境: windows10 python3.6 开发工具: pycharm weddriver 库: sel ...

  4. 【python】15行代码实现猫脸检测(opencv)

    文章目录 1. 项目简介 2. 项目地址 3. 依赖模块 4. 完整代码 5. 必要组件 5.1. haar级联特征分类器(精度高) 5.2. lbp级联特征分类器(速度快) 6. 成果展示 6.1. ...

  5. 【python】60行代码实现给头像戴上圣诞帽(opencv)

    文章目录 1. 成果展示 2. 项目简介 3. 项目地址 4. 预备知识 5. 完整代码 6. 必要组件 7. 圣诞素材 8. 引用参考 9. 软件下载 1. 成果展示 2. 项目简介 原理很简单,就 ...

  6. 【python】15行代码实现人脸检测(opencv)

    文章目录 1. 项目简介 2. 项目地址 3. 依赖模块 4. 完整代码 5. 必要组件 5.1. haar级联特征分类器(精度高) 5.2. lbp级联特征分类器(速度快) 6. 成果展示 6.1. ...

  7. python皮卡丘编程代码_再接再厉,用python编程13行代码解方程组(纯字符)

    因为是示例为主,我们将方程组限制在二元一次方程组:x,y两个变量,两个方程.类似这样: 每个方程有两个变量,x和y,形式为:ax+by+c=d 由于这次有了两个方程,我们提取参数的代码就适合提炼为一个 ...

  8. 【python】20行代码实现有道翻译api接口调用

    文章目录 1. 目标站点 2. 完整代码 3. 测试样例 3.1. 测试样例Ⅰ(汉译英) 3.2. 测试样例Ⅱ(英译汉) 4. 调用文档 4.1. 接口地址 4.2. 请求方法 4.3. 请求参数 4 ...

  9. python动态粒子素材,Python 技术篇-3行代码实现Gif动画生成,Gif动画素材获取方法...

    Python 技术篇-3行代码实现Gif动画生成,Gif动画素材获取方法 Python 技术篇-3行代码实现Gif动画生成,Gif动画素材获取方法 我们需要用到 imageio 库,直接pip ins ...

  10. Python 办公自动化,一键给PDF文件加密,超方便

    作者 | 欣一 来源 | Python爱好者集中营 今天给大家做一个给PDF文件加密的GUI界面(图形用户界面),方便现在的一些上班族白领们使用,尤其是需要给一些比较重要的PDF文件加密的时候,下面我 ...

最新文章

  1. Java8 Stream应用:Map合并、过滤、遍历、values int求和等
  2. 3-unit10 iptables
  3. lzg_ad:使用Virtual PC 部署和测试XP Embedded 发布镜像
  4. css阻止input select默认事件
  5. 利用java反射调用类的的私有方法
  6. 工业级光电转换器产品介绍
  7. 通过微型计算机的电流,单板微型计算机控制的电流型变频调速系统
  8. python自学要多久-python从入门到精通需要多久?你需要先明白这两个点
  9. memcache的安装和使用
  10. (16)python_random学习笔记
  11. 英文版 《UNIX 网络编程.卷一 (UNIX Network Programming .volume1. 3rd edition)》(pdf)高清精校版下载
  12. 三维扫描仪[11]——总结并展望基于Kinect的三维扫描仪
  13. python当前时间获取_python 当前时间获取方法
  14. thinkpadt410接口介绍_thinkpadt410价格与评测介绍【图文】
  15. 搭建一个属于自己的服务器,并实现内网穿透(外网访问本地服务器功能)
  16. android 的语言适配
  17. 2020蓝桥杯python——纪念日
  18. Deci and Centi Seconds parsing in java
  19. 软件工程小组需求分析--快递代领
  20. 小米设备跨版本降级后相机打不开陀螺仪无法工作解决办法

热门文章

  1. 过滤器(Filter)与拦截器(Interceptor )区别
  2. inovance变频器说明书参数设置_汇川(INOVANCE)MD300变频器说明书.pdf
  3. QQ消息 pc端防撤回
  4. SRCNN-pytoch代码讲解
  5. 微信公众平台快速开发框架源码
  6. java中的方法重载
  7. win10本地计算机策略进不去,Win10家庭版进不去组策略gpedit.msc的解决方法
  8. vue使用插件jsbarcode 生成条码下载
  9. 六、配置基于 IP 子网划分 VLAN 示例
  10. Mac OS 上MPV播放器常用快捷键