2015-03-19 3 views
0

У меня есть текстовый файл размером 2,5 ГБ, который содержит хеш-значения некоторых стандартных известных файлов. Моя задача - найти хэш всех файлов в моей файловой системе и сравнить их с хэшами, хранящимися в текстовом файле. Если совпадение найдено, мне нужно напечатать Known на экране, и если совпадение не найдено, мне нужно распечатать неизвестное на экране.Выполнять поиск по очень большому файлу программно в Python

Таким образом, подход к задаче довольно прост, но основная проблема заключается в том, что файлы, участвующие в процессе, очень велики.

Может кто-нибудь предложить, как выполнить эту задачу оптимизированным образом.

Должен ли я импортировать текстовый файл, содержащий хеши, в базу данных. Если да, то, пожалуйста, предоставьте ссылку, которая могла бы помочь мне ее выполнить.

Во-вторых, какой алгоритм я могу использовать для поиска, чтобы ускорить процесс?

Предпочитаемый язык - Python.

ответ

0
  • Поиск по StackOverflow для кода рекурсивно список полных имен файлов в Python
  • Поиск по StackOverflow для кода, чтобы вернуть хэш контрольной суммы файла

Затем список файлов с помощью функции итератора. Внутри цикла:

  • Получить хэш-сумму текущего файла в цикле

  • перебирать весь хэш. Внутри цикла:

    • Сравнение с контрольной суммой текущего файла

алгоритмов? Не беспокойтесь об этом. Если вы перебираете каждую строку файла, все будет хорошо. Просто не загружайте все сразу и не загружайте его в структуру данных, такую ​​как список или словарь, потому что у вас может закончиться нехватка памяти.