Python:大文件正则表达式的简单方法?
我需要在一个文件上运行正则表达式匹配,但遇到了一个意想不到的问题:这个文件太大了,无法一次性用 read()
或 mmap()
读取。文件对象不支持 buffer()
接口,而且正则表达式模块只接受字符串或缓冲区。
有没有简单的方法可以解决这个问题呢?
1 个回答
6
Python的mmap
模块提供了一种简单易用的方式来将文件映射到内存中。在32位操作系统上,文件的最大大小通常限制在1GB到2GB之间,但在64位操作系统上,你可以映射任意大小的文件(当然,前提是存储空间没有超过2的64次方)。
我曾经用Python处理过大小达到30GB的文件(比如维基百科的XML转储文件),效果非常好。