Python—在非常大的文本文件(8GB)中查找数据的最佳方法

Python—在非常大的文本文件(8GB)中查找数据的最佳方法,python,text,data-science,Python,Text,Data Science,我想扫描一个8GB的文本文件(它是一个日志文件)来查找特定的单词。这些字存储在超过3400行的数据框中 我尝试了以下解决方案,它避免了加载整个文档: with open(filename) as f: for line in f: do_stuff(line) 然而,这需要很长的时间来处理。扫描整个文档查找一个单词需要2分钟以上。将其乘以3400将需要113小时才能完成脚本 还有什么方法可以改进这个过程吗?创建一组单词:words=set(单词列) 然后做一些类似的事情: with o

我想扫描一个8GB的文本文件(它是一个日志文件)来查找特定的单词。这些字存储在超过3400行的数据框中

我尝试了以下解决方案,它避免了加载整个文档:

with open(filename) as f:
for line in f:
    do_stuff(line)
然而,这需要很长的时间来处理。扫描整个文档查找一个单词需要2分钟以上。将其乘以3400将需要113小时才能完成脚本

还有什么方法可以改进这个过程吗?

创建一组单词:
words=set(单词列)

然后做一些类似的事情:

with open(filename) as f:
    for line in f:
        words_in_line = set(line.split())
        matches = words & words_in_line #the intersection
        if len(matches) > 0:
            #do something with the matches
不管你做什么,不要扫描同一个文件3400次。找到一种只扫描一次的方法。

创建一组单词:
words=set(单词列)

然后做一些类似的事情:

with open(filename) as f:
    for line in f:
        words_in_line = set(line.split())
        matches = words & words_in_line #the intersection
        if len(matches) > 0:
            #do something with the matches
不管你做什么,不要扫描同一个文件3400次。找到一种只扫描一次的方法。

简单:让
do\u stuff()
运行得更快。你需要展示你在
do_stuff()
中所做的事情,以便人们能够回答你的问题。简单:让
do_stuff()
跑得更快。你需要展示你在
do_stuff()
中所做的事情,以便人们能够回答你的问题。