我在日志文件中有15行,我想通过python读取第4行和第10行,并在输出中显示它们,说明找到了这个字符串:
abc
def
aaa
aaa
aasd
dsfsfs
dssfsd
sdfsds
sfdsf
ssddfs
sdsf
f
dsf
s
d
请通过代码建议如何在python中实现这一点。
只是为了详细说明这个例子的第一个(字符串或行是唯一的),并且可以在logfile中轻松找到,下一个字符串B在第一个字符串的40行内,但是这一个出现在日志文件的很多地方所以我需要在读取字符串A后读取前40行的字符串并打印相同的字符串才能找到这些字符串。
此外,我无法使用python的with
命令,因为这会给我带来像'with'这样的错误,它将成为Python 2.6中的保留关键字。 我使用的是Python 2.5
答案 0 :(得分:0)
您可以使用:
fp = open("file")
for i, line in enumerate(fp):
if i == 3:
print line
elif i == 9:
print line
break
fp.close()
答案 1 :(得分:0)
#list of random characters
from random import randint
a = list(chr(randint(0,100)) for x in xrange(100))
#look for this
lookfor = 'b'
for element in xrange(100):
if lookfor==a[element]:
print a[element],'on',element
#b on 33
#b on 34
是一种易于阅读和简单的方法。您可以将日志文件的一部分作为示例吗?还有其他方法可以更好地运作:)。
经作者编辑后:
您可以做的最简单的事情是:
looking_for = 'findthis' i = 1 for line in open('filename.txt','r'):
if looking_for == line:
print i, line
i+=1
它既高效又简单:)
答案 2 :(得分:0)
def bar(start,end,search_term):
with open("foo.txt") as fil:
if search_term in fil.readlines()[start,end]:
print search_term + " has found"
>>>bar(4, 10, "dsfsfs")
"dsfsfs has found"