我是python的新手并尽可能快地学习。我试图比较两个没有排序的大文本文件,所以我必须比较两种方式.i.e。 A-B和B-A。文件大小非常大,所以我尝试使用哈希方法。
实际要求: 1.比较两个分隔的文本文件.i.e。 A-B和B-A。比较像excel中的Vlookup 2.将不匹配的行写入文本文件
问题: 我能够获得每一行的哈希值,但我在比较两个文件并将实际不匹配的行(而不是哈希值)写入文本文件时遇到问题。
代码:
from hashlib import sha1
import csv
File1 = 'text1.txt'
File2 = 'text2.txt'
output = 'output.txt'
with open(File1, 'r') as ifile:
for line in ifile:
line = line.rstrip()
digest = sha1(line).hexdigest()
with open(File2, 'r') as ifile1:
for line1 in ifile1:
line1 = line1.rstrip()
digest1 = sha1(line1).hexdigest()
writer = csv.writer(open(output, "w"))
for i in digest:
for xl in digest1:
if i[0] == xl[0]:
i.append(xl[1:])
writer.writerow(i)
digest.seek(0)
答案 0 :(得分:0)
哈希不是为更改检测而设计的,而是用于相等性检查。每次更改都必须导致至少一半散列位的更改。
如果您可以使用哈希检测两个流中的差异,则可以通过计算不同的哈希来破解密码,并使用该方法确定应该更改猜测密码的哪些部分。
您应该逐行迭代文件,直到遇到更改。