我正在使用Python3.2解析大小为1至10GB的日志文件,需要搜索特定正则表达式(某种时间戳)的行,并希望找到最后一次出现的位置。
我尝试使用以下方法:
for line in reversed(list(open("filename")))
这导致性能非常糟糕(在好的情况下),并且在不好的情况下会出现MemoryError。
在线程中:使用Python倒序读取文件,我没有找到任何好的答案。
我发现以下解决方案:Python头部、尾部和反向按行读取文本文件非常有前途,但它不适用于Python3.2,因为出现错误:
NameError: name 'file' is not defined
我之前尝试用File(TextIOWrapper)
替换File(file)
,因为open()
函数返回的是内置对象,但这导致了更多的错误(如果有人认为这是正确的方法,请告诉我,我可以详细解释一下:)
file
而不是 TextIOWrapper,当传递 open('some_file.txt') 时也无法工作。 - Noam Inbarwith open(...) as file: ...
。 - Loïc G.