Skip to main content

Command Palette

Search for a command to run...

找出文件名相似的文件

Updated
1 min read
找出文件名相似的文件

为了写稿子,以往收集过很多资料。

经常会出现一个情况,查找文件的时候,发现相同的内容可能存了好几份。

可能的原因是我喜欢批量收集,不同渠道可能回反复发布同一个内容。

其实存点文档网页啥的也不占啥空间,就是本地一搜索,出来好几个结果令人恼火。

所以用ChatGPT-4写了个python代码,经过几次调试,结果令人满意。

如果文件比较多,可能会运行时间比较长,请耐心等待。

运行的结果会以txt和csv文件形式和py脚本放在同一个目录下。

import os
import difflib
import csv

# 你想要开始查找的目录
start_dir = '/目录请填写在这里'
print(f'Starting directory: {start_dir}')  # 打印开始目录

# 将所有文件名及其路径存入列表
file_list = []
for dirpath, dirnames, filenames in os.walk(start_dir):
    for filename in filenames:
        file_list.append(os.path.join(dirpath, filename))
print(f'Found {len(file_list)} files')  # 打印找到的文件数

# 准备存储相似文件对的列表
similar_files = []

for i in range(len(file_list)):
    for j in range(i+1, len(file_list)):
        # 使用 difflib 库的 SequenceMatcher 函数来比较两个文件名的相似度
        seq = difflib.SequenceMatcher(a=os.path.basename(file_list[i]), b=os.path.basename(file_list[j]))
        # 如果相似度大于0.8(这个值可以根据需要调整),则将这两个文件名添加到结果列表
        if seq.ratio() > 0.8:
            similar_files.append([file_list[i], file_list[j]])

print(f'Found {len(similar_files)} pairs of similar files')  # 打印找到的相似文件对数

# 获取脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))

# 将结果写入文本文件
with open(os.path.join(script_dir, 'similar_files.txt'), 'w') as f:
    for pair in similar_files:
        f.write(f'Found similar files: {pair[0]} and {pair[1]}\n')

# 将结果写入 CSV 文件
with open(os.path.join(script_dir, 'similar_files.csv'), 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['File 1', 'File 2'])  # 写入表头
    writer.writerows(similar_files)  # 写入数据

More from this blog

血型新发现,远超想象的奥秘

1972年,一位孕妇的血液样本让医生们大吃一惊。他们发现她的红细胞表面缺少了一种当时所有已知血液中都存在的分子。这个发现开启了一段长达50年的血型之谜。 血型的发现之路 血型,这个看似简单的概念背后,隐藏着许多有趣的故事。我们最熟悉的是ABO血型系统和Rh因子(也就是"+"或"-"号)。但实际上,人类有47种血型系统!每种系统都像红细胞表面的特殊标记,帮助免疫系统识别"自己人"和"外来者"。 这些标记是如何被发现的?要追溯到1900年,奥地利医生兰德斯坦纳做了一个简单却重要的实验。他将实验室成员...

Jan 6, 20251 min read
血型新发现,远超想象的奥秘

世界奇妙导航记:五种令人惊叹的指路方式

请谨慎对待以下内容,本文由Claude-3.5-Sonnet撰写,没有做事实核查。 你有没有想过,在没有手机导航的时候,人们是怎么找路的?今天就让我们一起去探索世界上最有趣的五种导航方式吧! **蜜蜂:**会跳舞的小导航员 想象一下,在漆黑的蜂巢里,一只找到美食的蜜蜂正在跳一支特别的舞!科学家们把它叫做"摇摆舞"。小蜜蜂会扭动自己的身体,用舞蹈的角度告诉同伴食物在太阳的哪个方向,用舞蹈的时间长短表示距离有多远。更神奇的是,即使是阴天,蜜蜂也能根据太阳的移动调整自己的舞步!这个发现让科学家卡尔·...

Nov 27, 20241 min read

查阅世界各国历史边界 Old Maps Online

https://www.oldmapsonline.org/ “Old Maps Online”网站就像一个大型的互动版维基百科,可以让你浏览不同历史时期世界各地的地图边界变化。 通过这个网站,你可以看到不同时期制作的地图,了解当时人们对边界的认知,甚至能看到1950年代的旅游指南等各种地图。 你可以轻松地发现许多鲜为人知的历史知识,例如俄勒冈州、华盛顿州和不列颠哥伦比亚省曾由英美两国共同管辖近30年。 该网站还能提供有用的文化背景信息,方便你进行国际旅行前的准备。 通过滑动时间轴,你...

Nov 6, 20241 min read
查阅世界各国历史边界 Old Maps Online

[ai草稿]惊人发现!科学家破译抹香鲸的"字母表"

å注意:本文完全由人工智能创作,未经事实核查和编辑。 在浩瀚的海洋深处,体型庞大的抹香鲸正在进行着神秘的"对话"。这些海洋巨兽可以潜入3000米的深海,在黑暗中捕食巨型鱿鱼。它们独特的方形头部内藏有地球上最大的大脑,重达8公斤,比人类大脑重六倍多。最近,科学家们有了一个激动人心的发现:这些神秘的海洋生物可能拥有自己的"字母表"! 抹香鲸通过发出一连串奇特的"咔嗒"声来交流。这些声音组合被称为"coda",是抹香鲸语言的基本单元,类似于人类语言中的音节。当抹香鲸发出这些声音时,它们会使用头部的脂肪...

Jul 3, 20241 min read
[ai草稿]惊人发现!科学家破译抹香鲸的"字母表"

爱因斯坦的大脑:神秘的旅程与科学的探索

导读 爱因斯坦的遗愿是火葬,骨灰撒在秘密地点,不想被膜拜和封神。 病理学家哈维擅自保留了爱因斯坦的大脑,引发了争议和纠纷。 爱因斯坦的大脑被切成240块进行研究。 研究人员计划通过解剖学的方式检视爱因斯坦的大脑,并寻找与其他大脑的不同之处。 爱因斯坦的大脑,这颗曾孕育出无数革命性理论的脑袋,如同其主人一般,成为了科学界的一个永恒之谜。人们对于这颗大脑的痴迷,既源于对爱因斯坦个人的崇敬,也源于对人类智慧之源的探寻。 爱因斯坦在世时,就明确表示他希望自己死后火化,骨灰撒在秘密的地方,以免...

Aug 23, 20231 min read
爱因斯坦的大脑:神秘的旅程与科学的探索

半只土豆|漫话科学笔记

11 posts

科普什么值得写