我想搜索與正則表達式大文本文件,並有建立以下代碼:的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