擅长:python、mysql、java
<p>我会这样做:</p>
<pre><code>class Hashes(object):
def __init__(self, filename):
self.filename = filename
with open(filename, 'rt') as f: # read the file only once
self.hashes = set(line.strip() for line in f)
def add_hash(self, hash):
if hash not in self.hashes: # this is very fast with sets
self.hashes.add(hash)
with open(self.filename, 'at') as f:
print(hash, file=f) # write only one hash
hashes = Hashes("hashes.txt")
hashes.add_hash("ff071fdf1e060400")
</code></pre>
<p>因为:</p>
<ul>
<li>文件只读取一次</li>
<li>使用集合检查哈希是否存在非常快(无需读取所有集合)</li>
<li>通过只写入新的哈希来添加哈希</li>
<li>该类简化了多个哈希文件的创建和缓存哈希的清理,并通过组织代码简化了维护</li>
</ul>
<p>缺点是所有哈希都保存在内存中。如果有数以百万计的散列,这可能会导致问题,但在此之前,这是好的。如果速度很重要的话,那总比罚款好。你知道吗</p>