我是python的新手,并且尽可能快地倾斜。我正在尝试比较两个未排序的大文本文件,所以我必须比较两种方式,即 A-B 和 B-A。文件大小非常大,所以我正在尝试使用哈希方法。
实际需求:1. 比较分隔的文本文件 .i.i.即 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)
哈希不是为更改检测而设计的,而是为相等性检查而设计的。位的每次更改都必须导致至少一半的哈希位发生变化。
如果您可以使用两个流的哈希值来检测它们之间的差异,则可以通过计算不同的哈希值并使用该方法来确定应更改猜测的密码的哪些部分来破解密码。
您应该逐行迭代文件,直到遇到更改。