Skip to main content
 首页 » 编程设计

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

2025年05月04日26jiqing9006

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

有没有简单的方法来做到这一点?

请您参考如下方法:

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

我已经在 Python 中对高达 30 GB 的文件(维基百科 XML 转储文件)完成了此操作,并取得了出色的结果。