Python:regex在大文件上。简单的方法?

Python:regex在大文件上。简单的方法?,python,regex,file,io,Python,Regex,File,Io,我需要对文件运行正则表达式匹配,但我遇到了一个意外问题:文件太大,无法在一次调用中读取()或mmap(),文件对象不支持buffer()接口,并且正则表达式模块只接受字符串或缓冲区 有没有一种简单的方法可以做到这一点?Python模块提供了一种很好的Python友好的文件内存映射方法。在32位操作系统上,文件的最大大小将限制为不超过1 GB或2 GB,但在64位操作系统上,您将能够对任意大小的文件进行内存映射(当然,直到存储大小超过264) 我在Python中使用了高达30 GB的文件(Wiki

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

有没有一种简单的方法可以做到这一点?

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

我在Python中使用了高达30 GB的文件(Wikipedia XML转储文件)并取得了很好的效果。

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


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

正则表达式是否需要匹配多行,或者是否可以执行与grep?Big等效的操作。它需要匹配多行。我现在采取了一种不同的方法(不是生死攸关的情况),但我想知道,有没有更简单的方法来做到这一点?“大”并不是我问题的答案。我问这个问题的原因是,如果您使用的是64位操作系统(如果您现在处理的是“大”文件,那么您应该这样做),那么您将能够
mmap()
该文件。我用Python编写了高达30GB的文件,效果很好。@Greg哦,看看这个。不,文件不会太大:)我将
mmap()
it。将其作为答案发布(可能提供一些代码,以防其他人偶然发现),我会接受它!正则表达式是否需要匹配多行,或者是否可以执行与grep相同的操作?大。它需要匹配多行。我现在采取了一种不同的方法(不是生死攸关的情况),但我想知道,有没有更简单的方法来做到这一点?“大”并不是我问题的答案。我问这个问题的原因是,如果您使用的是64位操作系统(如果您现在处理的是“大”文件,那么您应该这样做),那么您将能够
mmap()
该文件。我用Python编写了高达30GB的文件,效果很好。@Greg哦,看看这个。不,文件不会太大:)我将
mmap()
it。将其作为答案发布(可能提供一些代码,以防其他人偶然发现),我会接受它!