我想搜索与正则表达式大文本文件,并有建立以下代码:的Python 3:搜索一个大的文本文件,正则表达式
import re
regex = input("REGEX: ")
SearchFunction = re.compile(regex)
f = open('data','r', encoding='utf-8')
result = re.search(SearchFunction, f)
print(result.groups())
f.close()
当然,这并不因为第二工作re.search
的参数应该是一个字符串或缓冲区。但是,我无法将所有文本文件插入到字符串中,因为它太长(这意味着需要永久)。什么是替代方案?
[Python正则表达式解析流]的可能重复(http://stackoverflow.com/questions/4634376/python-regex-parse-stream) – Joe 2012-03-03 12:52:54
假设您的文件位于本地驱动器上,并且它不大于可用内存,加载文件比运行正则表达式要花费更少的时间。你是否真的试图先读完整件事? – beerbajay 2012-03-03 12:56:38
@beerbajay,CPU可以比HDD更快地处理字符串。简单表达式的运行速度比从磁盘读取速度快。 (除非你在一个非常快速的SSD/RAID)。 – Qtax 2012-03-03 16:08:43