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

Pre*_*sen 2 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
Run Code Online (Sandbox Code Playgroud)

我的代码是:

dataFile = open('data/AllData_2000001_3000000.txt', 'r', encoding="latin-1")
print(dataFile.read())
Run Code Online (Sandbox Code Playgroud)

为了执行正则表达式搜索,打开文本的最佳方法是什么?
谢谢!

Pau*_* Bu 5

通过print(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)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!