【发布时间】:2012-03-21 17:20:00
【问题描述】:
我希望用正则表达式搜索一个大文本文件并设置了以下代码:
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 的第二个参数应该是字符串或缓冲区。但是,我无法将所有文本文件都插入到一个字符串中,因为它太长了(这意味着它需要很长时间)。有什么选择?
【问题讨论】:
-
假设您的文件在您的本地驱动器上并且它不大于您的可用内存,加载文件将比运行正则表达式花费更少的时间。你真的尝试过先阅读全文吗?
-
@beerbajay,CPU 处理字符串的速度比 HDD 读取它们的速度要快。简单的表达式将比从磁盘读取它们运行得更快。 (除非您使用的是相当快的 SSD/RAID)。
-
你当然是对的;我的反应是“这将需要永远”。
标签: python regex text python-3.x