gpt4 book ai didi

python - python 中的字符串比较

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:04 24 4
gpt4 key购买 nike

我正在通过比较文件名来查找重复文件。

但是,我发现 os.walk 返回的一些路径包含转义字符。例如,我可能会获取一个文件的 Structure in the Earth\'s core.pdf 和另一个文件的 Structure in the Earth\xe2\x80\x99s core.pdf

In [1]: print 'structure in the Earth\'s core.pdf\nstructure in the Earth\xe2\x80\x99s core.pdf'
structure in the Earth's core.pdf
structure in the Earth’s core.pdf

In [2]: 'structure in the Earth\'s core.pdf' == 'structure in the Earth\xe2\x80\x99s core.pdf'
Out[2]: False

我该如何处理这些情况?

====只是为了澄清回应评论的问题,重复文件还存在其他情况,例如

  • 一个文件名比另一个文件名包含更多空格
  • 一个文件名由 - 分隔,另一个文件名由 : 分隔
  • 一个文件名包含日语/中文单词,另一个文件名由数字和日语/中文单词组成...

最佳答案

也许您可以获得字符串的相似度而不是完全匹配。由于大写等简单问题,获得完全匹配可能会出现问题。

我建议如下:

from difflib import SequenceMatcher

s1 = "structure in the Earth\'s core.pdf"
s2 = "structure in the Earth\xe2\x80\x99s core.pdf"

matcher = SequenceMatcher()
matcher.set_seqs(s1, s2)
print(matcher.ratio())
# 0.9411764705882353

此结果表明两个字符串之间的相似度超过 94%。您可以定义删除阈值或在删除之前查看项目。

关于python - python 中的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46612812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com