У меня около 5000 файлов, и мне нужно найти слова в каждом из них из 10000 слов. В моем текущем коде используется (очень) длинное регулярное выражение, но это очень медленно.Каков наилучший способ поиска большого количества слов в большом количестве файлов?
wordlist = [...list of around 10000 english words...]
filelist = [...list of around 5000 filenames...]
wordlistre = re.compile('|'.join(wordlist), re.IGNORECASE)
discovered = []
for x in filelist:
with open(x, 'r') as f:
found = wordlistre.findall(f.read())
if found:
discovered = [x, found]
Это проверяет файлы со скоростью около 5 файлов в секунду, что намного быстрее, чем делать это вручную, однако он по-прежнему очень медленно. Есть лучший способ сделать это?
Рассмотрите возможность использования команд bash вместо Python, если вы используете Linux. – Raptor
Использовать 'threads' или' multiprocessing' – vks
@Raptor Я использую окна, но вполне возможно скопировать файлы в ящик linux. – Daffy