嘿我遇到了一个问题,我的程序停止在57802记录中迭代文件由于某些原因我无法弄清楚.我放了一个心跳部分,所以我可以看到它在哪条线上并且它有所帮助,但现在我被困在为什么它停在这里.我认为这是一个内存问题,但我只是在我的6GB内存计算机上运行它仍然停止.
有没有更好的方法来做我在下面做的任何事情?我的目标是读取文件(如果您需要我发送给您,我可以15MB文本日志)根据正则表达式找到匹配并打印匹配行.还有更多,但就我而言.我正在使用python 2.6
任何想法也会帮助和编码评论!我是一个python noob,我还在学习.
import sys, os, os.path, operator
import re, time, fileinput
infile = os.path.join("C:\\","Python26","Scripts","stdout.log")
start = time.clock()
filename = open(infile,"r")
match = re.compile(r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}),\d{3} +\w+ +\[([\w.]+)\] ((\w+).?)+:\d+ - (\w+)_SEARCH:(.+)')
count = 0
heartbeat = 0
for line in filename:
heartbeat = heartbeat + 1
print heartbeat
lookup = match.search(line)
if lookup:
count = count + 1
print line
end = time.clock()
elapsed = end-start
print "Finished processing at:",elapsed,"secs. Count of records =",count,"."
filename.close()
Run Code Online (Sandbox Code Playgroud)
这是第57802行,它失败了:
2010-08-06 08:15:15,390 DEBUG …Run Code Online (Sandbox Code Playgroud)