Как найти общую строку в двух файлах для очень большого набора данных.Ноутбук замораживается на 100 миллионов данных.Хотите лучшего решения - PullRequest
0 голосов
/ 21 февраля 2019

createFile () --- генерирует случайную строку в файлах 'a1.txt' и 'a2.txt' findCommon2 --- находит общие символы в обоих файлах.Хорошо работает для 10 миллионов данных, но хочет для 100 миллионов данных.Можно использовать хеширование ???

import string
import random
import time
import hashlib

def createFile(name,size):
    start = time.time()
    pattern = string.ascii_lowercase + string.digits + string.ascii_uppercase
    f1 = open(name,'w')
    for i in range(size):
        word = ''.join(random.choices(pattern,k=10))
        f1.write(word)
        f1.write('\n')
    f1.close()
    stop = time.time()
    print("Gen Time",stop-start)

def findCommon2(f1, f2):
    start = time.time()
    with open(f1,'r') as file1:
        with open(f2, 'r') as file2:
            common = set(file1).intersection(file2)
            # print(file1)
    stop = time.time()
        print("Comparision Time",stop-start)
        print(common)

f1 = 'a1.txt'
f2 = 'a2.txt'
createFile(f1, size)
createFile(f2, size)
findCommon(f1, f2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...