Python 打开巨大的文本文件并执行正则表达式搜索

Python 打开巨大的文本文件并执行正则表达式搜索,python,regex,text-mining,Python,Regex,Text Mining,我正试图打开一个巨大的文本文件(1 GB)并执行一些文本挖掘。 我愿意执行一些正则表达式搜索。 当我使用read()函数时,我得到一个错误: File "C:\Python33\lib\encodings\latin_1.py", line 26, in decode return codecs.latin_1_decode(input,self.errors)[0] MemoryError 我的代码是: dataFile = open('data/AllData_2000001_300000

我正试图打开一个巨大的文本文件(1 GB)并执行一些文本挖掘。
我愿意执行一些正则表达式搜索。
当我使用read()函数时,我得到一个错误:

File "C:\Python33\lib\encodings\latin_1.py", line 26, in decode
return codecs.latin_1_decode(input,self.errors)[0]
MemoryError
我的代码是:

dataFile = open('data/AllData_2000001_3000000.txt', 'r', encoding="latin-1")
print(dataFile.read())
要执行正则表达式搜索,打开文本的最佳方式是什么?
谢谢

通过执行
打印(dataFile.read())
将整个文件加载到内存中,这就是为什么会出现错误。更好的方法是逐行进行:

dataFile = open('data/AllData_2000001_3000000.txt', 'r', encoding="latin-1")
for line in dataFile:
    #perform regex searching in each line here
    print(line)

希望这有帮助

取决于您想做什么:

如果您真的想在一块中对整个1GB执行正则表达式搜索,那么您没有很多选择。如果您现在使用的是32位版本,那么切换到64位Python可能是其中之一

您的文本文件是按行还是类似的方式组织的?在这种情况下,您可以读取一行,处理它,转到下一行,依此类推。当然,这适用于您可以隔离的任何类型的“块”