欢迎访问宙启技术站
智能推送

Python中如何判断两个文件是否相同

发布时间:2024-01-02 09:42:49

在Python中,可以使用文件的哈希值来判断两个文件是否相同。哈希算法通过对文件内容进行计算得到一个 的哈希值,不同的文件内容一般会得到不同的哈希值,因此可以通过比较文件的哈希值来判断两个文件是否相同。

下面是一个使用哈希值判断两个文件是否相同的示例代码:

import hashlib

def get_file_hash(file_path):
    """计算文件的哈希值"""
    sha256 = hashlib.sha256()
    with open(file_path, 'rb') as f:
        while True:
            data = f.read(8192)
            if not data:
                break
            sha256.update(data)
    return sha256.hexdigest()

def compare_files(file1, file2):
    """比较两个文件的哈希值,判断文件是否相同"""
    hash1 = get_file_hash(file1)
    hash2 = get_file_hash(file2)
    return hash1 == hash2

# 测试示例
file1 = 'file1.txt'
file2 = 'file2.txt'
file3 = 'file3.txt'

if compare_files(file1, file2):
    print(f"{file1}和{file2}是相同的文件")
else:
    print(f"{file1}和{file2}不是相同的文件")

if compare_files(file1, file3):
    print(f"{file1}和{file3}是相同的文件")
else:
    print(f"{file1}和{file3}不是相同的文件")

在上面的示例中,get_file_hash函数使用SHA256算法计算文件的哈希值,compare_files函数比较两个文件的哈希值,返回值为True表示文件内容相同,False表示文件内容不同。

示例中假设存在三个文件:file1.txt、file2.txt和file3.txt,其中file1.txt和file2.txt的内容相同,file3.txt的内容与前两个文件不同。通过比较文件的哈希值,我们可以判断出file1.txt和file2.txt是相同的文件,而file1.txt和file3.txt不是相同的文件。