有一定数量的文件,一部分的文件名是有意义的,由中文、日文、或英文以及数字、点、下划线构成的,格式十分混乱;另一部分的文件名是类似哈希值的乱码,由字母数字以及一些符号组成,人类不可读。
有没有什么办法把其中文件名乱码的文件筛选出来?含有中文日文的好说,由英文数字及符号组成的想不到方便的办法与乱码区分,上语义识别成本也太高了。
有一定数量的文件,一部分的文件名是有意义的,由中文、日文、或英文以及数字、点、下划线构成的,格式十分混乱;另一部分的文件名是类似哈希值的乱码,由字母数字以及一些符号组成,人类不可读。
有没有什么办法把其中文件名乱码的文件筛选出来?含有中文日文的好说,由英文数字及符号组成的想不到方便的办法与乱码区分,上语义识别成本也太高了。
导出一个csv,交给chatgpt吧……
是那种不太健康的文件,给 gpt 怕被和谐了
if(仅英文与数字):
→输出→再筛选
else:
→不管
if(英文+数字连续长度>8):
→输出→再筛选
else:
→不管
话说真的没规律吗,一点规律也无?
那可以用一些简单而方法,例如常用单词里面很少出现的字母组合
有单词、数字、.
、括号、-
和_
,规律很乱,有的有空格有的没空格,有的带括号分割有的没有,有的.
当空格,有的_
当空格,有的-
当空格,还有把它们混起来用的。
乱码的文件里也有-
和_
,把几串乱码拼在一起。按字符筛完还有几百个,工作量不是做不完但就很烦人。
你可以给出一些具体的正常和异常的文件名示例
通常来说 乱码的文件名会比较长.
所以你用everything 筛选功能即可.
你得对“乱码”/“非乱码”有一个明确的判断标准呀
结合你说的 不太健康的文件,那么即使“乱码”字符串没有标准,
那么“非乱码”字符串不是有自个的规范么
正则筛选出字母+数字的字符串 → 排除“非乱码”=“乱码”
问题就是非乱码的文件名没有规范, 不止是我上面提到的分隔符混乱的问题, 里面还混杂着网址, 我也不知道是什么的缩写, 甚至还有洋葱网址这种和乱码没区别的东西. 唯一能与乱码区分的就是人能从里面认出来单词, 并根据上下文猜到意思.
例如 [某个缩写] (某个网址) A.B23-CD_1.mp4
或者 ABCD_某网址.mp4
各种格式能举出几十种来, 使用正则表达式匹配不太现实.
乱码的也有各种各样, 大概由以下的片段随机组成
这些组成部分可能有也可能没有, 连接它们的可能是
, .
, -
,_
.
长度上也不能区分, 非乱码的文件名有的两三个单词, 有的二三十个单词加一长串网址. 乱码的也有不同位数.
目前能想到的一个办法是拿一个词典在文件名里找单词, 找到有意义的单词大概就不是乱码. 但是部分乱码的文件名可能带一个有意义的单词作为前缀或后缀, 或者乱码里面碰巧出现了一个单词, 这样就不太能区分.
乱码文件的名称中没有汉字和假名?如果是这样,可以考虑先用正则表达式把所有文件名中有汉字和假名的文件筛选出来,余下的再做进一步筛选。
看了半天,你所谓的乱码只是你的感觉,其实并没有什么真正的规律可言。
这样真的帮不了你,就酱。
导出CSV,用正则整行匹配,不过有小概率误判的可能。