Python:大文件上的正则表达式.简单的方法?

sle*_*ica 1 python regex io file

我需要在文件上运行正则表达式匹配,但是我遇到了一个意想不到的问题:文件太大read()或者mmap()在一次调用中,文件对象不支持buffer()接口,而正则表达式模块只接受字符串或缓冲区.

是否有捷径可寻?

Gre*_*ill 6

Python mmap模块提供了一种很好的Python友好的内存映射方式.在32位操作系统上,文件的最大大小将限制为不超过GB或两个,但在64位操作系统上,您将能够内存映射任意大小的文件(直到存储当然,尺寸超过2 64).

我用Python中的高达30 GB的文件(Wikipedia XML转储文件)完成了这项工作,效果非常好.