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

时间:2011-04-05 22:56:59

标签: python regex file io

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

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:5)

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

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