如何将正则表达式应用于文件内容?
我想对一个文件的内容使用正则表达式,但不想把整个文件的内容都加载到一个字符串里。RegexObject的第一个参数需要一个字符串或者一个缓冲区。有没有办法把文件变成一个缓冲区呢?
5 个回答
1
一次读取文件的一行,然后把你的正则表达式应用到这一行上。re模块似乎是专门用来处理字符串的。你可以在这个链接里找到更详细的信息:http://docs.python.org/library/re.html,不过我没有找到关于缓冲区的内容。
4
当然可以!试试这个mmap:
你可以用re模块在一个内存映射的文件中进行搜索。
2
来自Python文档的引用:
缓冲区对象在Python语法中并没有直接支持,但可以通过调用内置函数 buffer() 来创建。
还有一些有趣的内容:
buffer(object[, offset[, size]])
这里的 object 参数必须是一个支持缓冲区调用接口的对象(比如字符串、数组和缓冲区)。[...]
文件对象并不实现缓冲区接口,所以你需要把它的内容转换成字符串(使用 f.read()
)或者转换成数组(可以使用 mmap 来实现)。