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不是相同的文件。
