我需要对一个文件运行正则表达式匹配,但我遇到了一个意想不到的问题:该文件太大而无法read() 或mmap() 在一次调用中,File 对象不支持 buffer() 接口(interface),regex 模块只接受字符串或缓冲区。
有没有简单的方法来做到这一点?
请您参考如下方法:
Python mmap模块提供了一种很好的 Python 友好的内存映射文件的方式。在 32 位操作系统上,文件的最大大小将被限制为不超过 1 GB 或 2 GB,但在 64 位操作系统上,您将能够内存映射任意大小的文件(直到存储当然,大小超过 264。
我已经在 Python 中对高达 30 GB 的文件(维基百科 XML 转储文件)完成了此操作,并取得了出色的结果。
