【问题标题】:How can I use Python to locate two files with identical names and check if they're equal? [closed]如何使用 Python 定位两个具有相同名称的文件并检查它们是否相等? [关闭]
【发布时间】:2016-11-09 02:51:49
【问题描述】:

总结:如何使用 Python 定位两个名称相同的文件(在已知位置),并使用哈希查看它们是否相同。

我目前有两个文件夹,Folder1Folder2。我试图弄清楚如何让 Python 通过 Folder1 逐个文件移动文件。对于每个文件(这是一个 .jpg 图像),我想使用哈希来获取图像的唯一整数并将文件名复制到字符串。从这个字符串中,我计划在 Folder2 中找到该图像的潜在相同副本,然后使用哈希来查看它们是否相同。

我是 Python 新手,这是我在 Stack Overflow 上的第一篇文章。如果有任何我应该包含的信息或我不清楚的地方,请告诉我,我会尽快回复。谢谢,也感谢 Ares 推荐使用 hash。

【问题讨论】:

  • 尝试使用枕头。 python-pillow.org
  • 更好地比较文件的哈希值(shamd5 或感知哈希值)而不是文件大小。

标签: python image python-3.x compare hashcode


【解决方案1】:

比较文件大小真的不够,是吗?您可以很容易地拥有两个文件,a.jpg 在文件夹 A 中,a.jpg 在文件夹 B 中。它们都是 16 kb,除了一个是狗的图片和一个是猫的图片。

可能有价值的是hash 列表中的每张图片。在 Python 中,您可以获取任何东西 - 数字、字符串、图像等 - 并在其上调用 hash()

哈希是一组特定数据的数字表示。除了一些罕见的例外,散列完全是该数据独有的。除了完全相同的数据集之外,没有其他数据集具有该哈希值。

一些例子:

> hash('test')

会输出

2314058222102390712

> hash('Test')

-1504849438355502056

This question 描述了如何在 Python 中加载图像。然后,只需在每个图像上调用hashThis 描述了哈希是什么,如果我不清楚的话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多