Python不对大文件应用正则表达式

时间:2015-11-18 14:08:03

标签: python regex mmap finite-element-analysis

collection.count

以下是我试图在完整文件中应用正则表达式的代码。无论何时我在较小的文件上测试此代码< 1MB 代码工作正常但在大文件上它不工作并返回空数组。下面是我试图解析的数据示例。 通常它涉及3M行的此类数据。

import re
import sys, getopt
import mmap

shakes = open(sys.argv[1:][0],'r')
love = open(sys.argv[1:][1], "w")
#moreLove = open (sys.argv[1:][2], "w")
#HardLove = open (sys.argv[1:][3], "w")

node =  re.compile('\*NODE[a-zA-Z, \r\n\t0-9\.-]+')
element3 = '\*ELEMENT, TYPE=S3RS[a-zA-Z, \r\n\t0-9\.=;_-]+'
element4 =  '\*ELEMENT, TYPE=S4RS[a-zA-Z, \r\n\t0-9\.=;_-]+'

m = mmap.mmap(shakes.fileno(), 0, access=mmap.ACCESS_READ)

line = node.findall(m.read().decode('utf-8'))
#for item in line:
#  love.write(item)
#print(m.read())
print(line)

0 个答案:

没有答案