我有记录器文件......大小约为1GB。 我希望逐行读取数据直到某个关键字"转换到不同的模式"到达了,我也想要那个时间戳
我尝试了不同的代码,但它只提供日志标题和日志文件中的几行(文件采用txt格式)
下面是我试图打印前100行的代码
i =1
with open(sFile) as fileobject:
for line in fileobject:
print line
i = i + 1
if i > 100:
break
这只打印标题和其他几行 有人可以帮忙解决这个问题吗
谢谢
答案 0 :(得分:0)
这是你想要的吗?
导入时间
start = time.time()
with open(sFile) as fileobject:
for i, line in enumerate(fileobject):
if line.strip() == "transitioning to different mode":#or
#if line.stratswith("transitioning to different mode"): # or
#if "transitioning to different mode" in line:
print(i)
break
end = time.time()
print(end - start)
答案 1 :(得分:-1)
在加载大文件时,yield
的使用将为您的任务提供内存效率:
def readfile(filename):
with open(filename) as fileObject:
for line in fileObject:
yield(line)
yield None # after the end of line
现在生成文件行如下:
lines = readfile(filename)
line = line.next():
while line:
print (line)