Все, Я довольно новый и ищу помощь. Мне нужно выполнить строковый поиск в наборе данных, который сжал около 20 ГБ данных. У меня есть восьмиъядерный ящик ubuntu с 32 ГБ ОЗУ, который я могу использовать для этого, но я не могу реализовать и не определить наилучший возможный код для такой задачи. Будет ли Threading или многопроцессорная обработка лучше всего для такой задачи? Просьба представить образцы кода. Спасибо. См. Мой текущий код;Python for loop с использованием Threading или многопроцессорной обработки
#!/usr/bin/python
import sys
logs = []
iplist = []
logs = open(sys.argv[1], 'r').readlines()
iplist = open(sys.argv[2], 'r').readlines()
print "+Loaded {0} entries for {1}".format(len(logs), sys.argv[1])
print "+Loaded {0} entries for {1}".format(len(iplist), sys.argv[2])
for a in logs:
for b in iplist:
if a.lower().strip() in b.lower().strip()
print "Match! --> {0}".format(a.lower().strip())
Я не уверен, что Python - это инструмент для вашей задачи. Почему бы вам просто не загрузить их в sqlite или что-то еще? –
Прошу прощения, но не могли бы вы объяснить свои рассуждения? Я действительно думал, что это будет хорошим вариантом для Python. – noobie
Ну, это было бы легко сделать в SQL, но, безусловно, возможно в Python. Есть ли только два гигантских файла или множество небольших файлов? – reptilicus