#2022-10-28
import hashlib
import os
import time def getmd5(filename):
"""
获取文件 md5 码
:param filename: 文件路径
:return: 文件 md5 码
"""
file_txt = open(filename, 'rb').read()
# 调用一个md5对象
m = hashlib.md5(file_txt)
# hexdigest()方法来获取摘要(加密结果)
return m.hexdigest() def main():
# 文件夹路径
path = input("path: ")
# 存放文件的 md5 码
all_md5 = {} # 改为字典
total_file = 0
total_delete = 0
# 开始时间
start = time.time()
# 遍历文件夹下的所有文件
for file in os.listdir(path):
# 文件数量加 1
total_file += 1
# 文件的路径
real_path = os.path.join(path, file)
# 判断文件是否是文件
if os.path.isfile(real_path) == True:
# 获取文件的md5码
filemd5 = getmd5(real_path)
# 如果文件 md5 已存在,则删除此文件
if filemd5 in all_md5.keys(): # 字典的键为文件 md5 码
total_delete += 1
print('删除', file)
os.remove(real_path)
#os.remove(path +"\\" + file)
else:
# 如果文件 md5 不存在,则将此文件的 md5 码添加到 all_md5 字典中
all_md5[filemd5] = ""
# 结束时间
end = time.time()
time_last = end - start
print('文件总数:', total_file)
print('删除个数:', total_delete)
print('耗时:', time_last, '秒') if __name__ == '__main__':
main()

来源: http://t.csdn.cn/uLV2g

python删除某一文件夹下的重复文件的更多相关文章

  1. java 删除文件夹 / 删除某文件夹下的所有文件

    import java.io.File; /*************************删除文件夹delFolder / 删除文件夹中的所有文件delAllFile *start******** ...

  2. Nodejs下如何判断文件夹的存在以及删除文件夹下所有的文件

    代码如下: var folder_exists = fs.existsSync('./cache'); if(folder_exists == true) { var dirList = fs.rea ...

  3. Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身

    Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身 rm -rf *

  4. 读取某文件夹下所有excel文件 python

    import os import pandas as pd from sklearn import linear_model path = r'D:\新数据\每日收益率' filenames = os ...

  5. GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级

    一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...

  6. java读取某个文件夹下的所有文件

    import java.io.FileNotFoundException;import java.io.IOException;import java.io.File; public class Re ...

  7. 用Java实现将多级文件夹下的所有文件统一放到一个文件夹中

    每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了 ...

  8. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  9. WINDOWS批量替换不同文件夹下的相同文件

    今天帮媳妇解决的问题,记录一下,也许以后有用 例子: N个文件夹下有同一个文件(common.php),但是,现在对common.php文件进行了大量修改. 现在想用最新的common.php替换掉所 ...

随机推荐

  1. TCP实现多个客户端发送数据给服务器端

    SocketThread给服务端用的线程类: public class SocketThread extends Thread{ private Socket socket; public Socke ...

  2. 手把手教你怎么将linux的一个函数性能搞奔溃

    static struct fib_table *fib_empty_table(struct net *net){    u32 id;    for (id = 1; id <= RT_TA ...

  3. ABC 203 F - Weed (DP)

    ABC203F - Weed 题意转述 S t e v e \rm Steve Steve 和 A l e x \rm Alex Alex 正在下界( N e t h e r l e n d \rm ...

  4. ARC120D Bracket Score 2 (模拟)

    题面 给一个长度为 2 N 2N 2N 的序列 A A A,定义一个长度为 2 N 2N 2N 的合法括号序列的 得分(score) 为: 对于每对配对的括号 i , j i,j i,j, ∣ A i ...

  5. Qt Q_OBJECT编译问题

    编译问题 添加Q_OBJECT后需要qmake 多重继承 添加了Q_ENUM之类的宏,就需要Q_OBJECT 添加了Q_OBJECT,就需要类继承自QObject 如果有多重继承关系,QObject一 ...

  6. KingbaseESV8R6如何针对表单独设置vacuum策略

    背景 书接上文 KingbaseES应对表年龄增长过快导致事务回卷 ,有些特殊业务场景不能靠全局的autovacuum方法,例如大型数据库系统,频繁做update的系统,还有上文提到的做实时数据同步的 ...

  7. lombok Builder注解

    使用了@Builder 将会失去无参构造函数 可以通过 @Tolerate 来添加构造函数

  8. JS输出内容为[object Object]

    问题描述 项目中,欲在控制台输出变量res(自定义对象)查看数据,代码为: console.log('res:' + res); 但控制台显示结果为res: [object Object],并非想要查 ...

  9. 从 Yum 更新中排除特定/某些包的三种方法

    方法 1:手动或临时用 yum 命令排除包 要排除单个包: # yum update --exclude=kernel 或者 # yum update -x 'kernel' 要排除多个包.以下命令将 ...

  10. 10.第九篇 kube-scheduler 安装及验证

    文章转载自在:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483830&idx=1&sn=787de8d ...