私はこのアイデアの変種を見つけましたが、私が必要な場所に(Pythonに非常に慣れていない)私を導くことができるものはありませんでした。
シナリオは次のとおりです。
- 私は1つの巨大な27ギグを持っており、
hashfile.txt
すべてが別々の行にあるユニークなストリングで構成されています。 - このファイルを1行ずつ解析して、別のそれほど大きくない(〜800mb)
addresses.txt
ファイルで一致するものを検索する必要があります。 - 一致するものが見つかったら、これを次のように書き込む必要があります
outfile.txt
私の現在のコードは私の能力の限りを尽くして最適化されていますが、約150行/秒しか得られません。私の中に15億以上の行があることを考えるとhashfile.txt
、どんな最適化も役立つでしょう。
fin = 'hashed.txt'
nonzeros = open('addrOnly.txt', 'r')
fout = open('hits.txt', 'w')
lines = nonzeros.read()
i = 0
count = 0
with open(fin, 'r') as f:
for privkey in f:
address = privkey.split(", ")[0]
if address in lines:
fout.write(privkey)
i = i+1
if i%100 == 0:
count = count + 100
print "Passed: " + str(count)