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

最近下载了 两个约1T的种子,其中一个有字幕,一个没字幕,现在希望能找到方法,或者工具,对两个文件目录以其中的文件夹名的一部分进行比较去重
文件夹大概是这个样子:Snipaste_2021-04-22_20-28-34
总共约莫有一千多个文件夹,所以手动去重大概是不可能的了。。

顶一下,我也需要

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

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

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

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

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

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

菲菲文件更名宝贝.

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

1 个赞

有个或许能帮上忙的 Python 库

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

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

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

可以,我主要是怕账号被封。。。
https://drive.zxhzxhz.top/pastebin.txt

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

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

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

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

代码: Ubuntu Pastebin
需要本地装 Python 环境,且安装了 pandas 和 string_grouper 这两个库
把之前你贴上的文件存储为 data.txt,运行完会生成一个 output.csv,包含可能的重复对以及各自的来源

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

1 个赞

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

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

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