# 有没有办法根据文件夹里的部分字符进行去重？

**URL:** <https://meta.appinn.net/t/topic/23103>\
**Category:** 问题求助\
**Tags:** 文本处理, 文件管理\
**Created:** [2021 年4 月 22 日 12:30 UTC](https://meta.appinn.net/t/topic/23103 "2021-04-22T12:30:47Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

作者： ![e1bc91145138](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/e1bc91145138/32/69325_2.png) [@e1bc91145138](https://meta.appinn.net/u/e1bc91145138)\
发布日期： [2021 年4 月 22 日 12:30 UTC](https://meta.appinn.net/t/topic/23103/1 "2021-04-22T12:30:47Z")

</div>

最近下载了 两个约1T的种子，其中一个有字幕，一个没字幕，现在希望能找到方法，或者工具，对两个文件目录以其中的文件夹名的一部分进行比较去重  
文件夹大概是这个样子： ![Snipaste_2021-04-22_20-28-34](https://meta.appinn.net/uploads/default/original/3X/f/6/f683315660afa46136478b0c634974bf7064ee02.png)  
总共约莫有一千多个文件夹，所以手动去重大概是不可能的了。。

---

<div class="post-metadata">

作者： ![anon23138622](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/a88e57/32.png) [@anon23138622](https://meta.appinn.net/u/anon23138622)\
发布日期： [2021 年4 月 23 日 16:14 UTC](https://meta.appinn.net/t/topic/23103/2 "2021-04-23T16:14:14Z")

</div>

顶一下，我也需要

---

<div class="post-metadata">

作者： ![loli](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/loli/32/13791_2.png) [@loli](https://meta.appinn.net/u/loli)\
发布日期： [2021 年4 月 23 日 18:20 UTC](https://meta.appinn.net/t/topic/23103/4 "2021-04-23T18:20:48Z")

</div>

文件夹名称格式都和你这差不多的话ahk写一个两层loop file就行了  
第一层提取名称,比方说你这是 自宅\*\*\*  
然后第二层依次对比每个文件夹名称是否包含这个 关键词.

匹配到脚本可以直接删除其中一个文件夹(确信关键词唯一以及确认要保留的都在一个文件夹)  
或者把两个文件夹路径都写入一个文件,然后自己再手动一个个对比删除,  
或者在文件中删除其中一个再用脚本自动删除.

---

<div class="post-metadata">

作者： ![dawn](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/d/71e660/32.png) [@dawn](https://meta.appinn.net/u/dawn)\
发布日期： [2021 年4 月 24 日 06:16 UTC](https://meta.appinn.net/t/topic/23103/5 "2021-04-24T06:16:57Z")

</div>

命名规律的话，一般用户用excel就可以进行数据处理  
然后用带导入选择功能的软件或者是重命名软件进行选择或重命名进行删除

---

<div class="post-metadata">

作者： ![e1bc91145138](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/e1bc91145138/32/69325_2.png) [@e1bc91145138](https://meta.appinn.net/u/e1bc91145138)\
发布日期： [2021 年4 月 24 日 08:46 UTC](https://meta.appinn.net/t/topic/23103/6 "2021-04-24T08:46:53Z")

</div>

但是其实并不是完全的标题对应，比如有的标题里会把“、”用英语的“,”代替，有时候会反过来。大体思路上可能还需要去除无用字符以及通过字符相似度来比对。  
但是不想自己重新发明轮子，想看看有没有人已经实现过。。:joy:

---

<div class="post-metadata">

作者： ![deanme](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/deanme/32/1331_2.png) [@deanme](https://meta.appinn.net/u/deanme)\
发布日期： [2021 年4 月 24 日 10:53 UTC](https://meta.appinn.net/t/topic/23103/7 "2021-04-24T10:53:31Z")

</div>

我觉得问题在于……是不是可能重复的字符串是不是位置不特定？那就难搞啊

---

<div class="post-metadata">

作者： ![e1bc91145138](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/e1bc91145138/32/69325_2.png) [@e1bc91145138](https://meta.appinn.net/u/e1bc91145138)\
发布日期： [2021 年4 月 24 日 11:10 UTC](https://meta.appinn.net/t/topic/23103/8 "2021-04-24T11:10:18Z")

</div>

是的，虽然他们都看似有个格式，但是格式不能保证都准确

---

<div class="post-metadata">

作者： ![xiaokonglong](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/xiaokonglong/32/908_2.png) [@xiaokonglong](https://meta.appinn.net/u/xiaokonglong)\
发布日期： [2021 年4 月 25 日 01:00 UTC](https://meta.appinn.net/t/topic/23103/9 "2021-04-25T01:00:28Z")

</div>

菲菲文件更名宝贝.

虽然名字很糟心, 但是这个软件是世界上最强大的更名软件. 最强大最强大的. 没有之一.

> **[菲菲更名宝贝 之 得意非凡 v5.0 正式版 | 菲菲的家](http://www.ffhome.com/works/1406.html)**
>
> 『菲菲更名宝贝』是一款优秀的批量更名软件和批量文件处理工具，是获奖软件。软件以功能强大著称，在国内文件处理和批量更名类软件中占有一定地位，多年来得到了大家的喜爱。时隔太久未能更新，如今新版『菲菲更名宝贝 之 得意非凡』发布，可以称得上是四年磨剑、浴火重生！

---

<div class="post-metadata">

作者： ![jerrylus](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/jerrylus/32/14901_2.png) [@jerrylus](https://meta.appinn.net/u/jerrylus)\
发布日期： [2021 年4 月 25 日 21:27 UTC](https://meta.appinn.net/t/topic/23103/11 "2021-04-25T21:27:45Z")

</div>

有个或许能帮上忙的 Python 库

> **[GitHub - Bergvca/string\_grouper: Super Fast String Matching in Python](https://github.com/Bergvca/string_grouper)**
>
> Super Fast String Matching in Python

如果可以的话，能否在需要处理的目录下开一个命令提示符，然后运行 tree，用 pastebin 之类的网站把结果贴上来？

---

<div class="post-metadata">

作者： ![muzuiget](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/muzuiget/32/5480_2.png) [@muzuiget](https://meta.appinn.net/u/muzuiget)\
发布日期： [2021 年4 月 26 日 05:43 UTC](https://meta.appinn.net/t/topic/23103/12 "2021-04-26T05:43:09Z")

</div>

不知道你的“去重”是什么意思，如果只是存在多个完全相同的文件，先把所有文件夹算一下 MD5 就行了，得到 MD5 和文件路径组合，然后排序，就就知道那些重复了。

```
b026324c6904b2a9cb4b88d6d61c81d1 c:\a\aaa.mp4
b026324c6904b2a9cb4b88d6d61c81d1 c:\b\bbb.mp4

```

---

<div class="post-metadata">

作者： ![e1bc91145138](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/e1bc91145138/32/69325_2.png) [@e1bc91145138](https://meta.appinn.net/u/e1bc91145138)\
发布日期： [2021 年4 月 26 日 12:56 UTC](https://meta.appinn.net/t/topic/23103/13 "2021-04-26T12:56:57Z")

</div>

可以，我主要是怕账号被封。。。  
[https://drive.zxhzxhz.top/pastebin.txt](https://drive.zxhzxhz.top/pastebin.txt)

---

<div class="post-metadata">

作者： ![e1bc91145138](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/e1bc91145138/32/69325_2.png) [@e1bc91145138](https://meta.appinn.net/u/e1bc91145138)\
发布日期： [2021 年4 月 26 日 12:57 UTC](https://meta.appinn.net/t/topic/23103/14 "2021-04-26T12:57:36Z")

</div>

并不是完全相同的文件去重，而是根据相似的文件夹名来去重

---

<div class="post-metadata">

作者： ![licocy](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/l/5daacb/32.png) [@licocy](https://meta.appinn.net/u/licocy)\
发布日期： [2021 年4 月 26 日 15:46 UTC](https://meta.appinn.net/t/topic/23103/15 "2021-04-26T15:46:37Z")

</div>

推荐Duplicate Cleaner，可以相同/相似文件比较或相同/相似文件名比较并按照一定的规则进行批量勾选删除，缺点是收费，也可以考虑破解。

---

<div class="post-metadata">

作者： ![darkmatter](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/darkmatter/32/7517_2.png) [@darkmatter](https://meta.appinn.net/u/darkmatter)\
发布日期： [2021 年4 月 26 日 16:35 UTC](https://meta.appinn.net/t/topic/23103/16 "2021-04-26T16:35:12Z")

</div>

如果是这种的话 建议JAVSDT刮削器 可以根据演员-标题弄一起 而且后续你NAS/网盘整理也方便  
弄成结构化明名后写脚本也方便许多 一般PT/BT压制组不一样 明明规则都不一样 需要写很多适配的

---

<div class="post-metadata">

作者： ![jerrylus](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/jerrylus/32/14901_2.png) [@jerrylus](https://meta.appinn.net/u/jerrylus)\
发布日期： [2021 年4 月 27 日 11:45 UTC](https://meta.appinn.net/t/topic/23103/17 "2021-04-27T11:45:37Z")

</div>

大致弄了一个，输出长这样

 ![image](https://meta.appinn.net/uploads/default/original/3X/e/1/e1218383e1076c268dcce3747fa4db67d521152e.png)

代码： [Ubuntu Pastebin](https://paste.ubuntu.com/p/3JtpQsTKr3/)  
需要本地装 Python 环境，且安装了 pandas 和 string\_grouper 这两个库  
把之前你贴上的文件存储为 data.txt，运行完会生成一个 output.csv，包含可能的重复对以及各自的来源

剩下的如果要移动文件，可能就要自己再写点脚本处理了，或者用excel转换下然后传给其他工具操作

---

<div class="post-metadata">

作者： ![e1bc91145138](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/e1bc91145138/32/69325_2.png) [@e1bc91145138](https://meta.appinn.net/u/e1bc91145138)\
发布日期： [2021 年4 月 27 日 12:23 UTC](https://meta.appinn.net/t/topic/23103/18 "2021-04-27T12:23:13Z")

</div>

太强了  
以前我用nodejs写过string similarity相关的代码，但是当时怎么也写不对，后来也纠结过一段时间，最后还是放弃了。。。

---

<div class="post-metadata">

作者： ![jerrylus](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/jerrylus/32/14901_2.png) [@jerrylus](https://meta.appinn.net/u/jerrylus)\
发布日期： [2021 年4 月 27 日 12:51 UTC](https://meta.appinn.net/t/topic/23103/19 "2021-04-27T12:51:19Z")

</div>

npm估计也有类似的库，可能是关键词不对？这种去重的任务的话，可以用 deduplication / similarity calculation / record linkage / entity resolution 作为关键词试着搜索下。

---

<div class="post-metadata">

作者： ![e1bc91145138](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/e1bc91145138/32/69325_2.png) [@e1bc91145138](https://meta.appinn.net/u/e1bc91145138)\
发布日期： [2021 年4 月 27 日 13:04 UTC](https://meta.appinn.net/t/topic/23103/20 "2021-04-27T13:04:18Z")

</div>

当时用的一个包叫string-similarity，跑了跑不能用，应该还有几个包，但是时间久了想不起来，也懒得翻modules了。。。
