2009-12-18 113 views
0

这是参考一个问题,我昨天Searching a file in 3 different ways搜索文件

贴我只是需要更多帮助的两件事情,搜索文件,并打印在搜索结果中找到行和之后的所有行到文件的末尾。

最后我需要编码方面的帮助:我搜索一个文件,并在搜索结果前后找到搜索结果和一些行。搜索结果之前和之后打印的行数由用户定义,并且行之前/之后的行数相同。

+0

请发表你在这一点上的代码。 – 2009-12-18 11:15:13

回答

2

的第一部分

for line in open("file"): 
    line=line.rstrip() 
    if "search" in line: 
     f=1 
    if f: print line 

第二部分

context=3 
search="myword" 
f=open("file") 
d={} 
for n,line in enumerate(f): 
    d[n%context]=line.rstrip() 
    if search in line: 
     for i in range(n+1,n+1+context): 
      print d[i%context] 
     for i in range(1,context): 
      print f.next().rstrip() 
f.close() 
+0

我喜欢它。这比我想使用deque更容易。如果匹配在文件的前几行(n <上下文),您确​​实需要做一些小改动,Jessica没有指定如何处理搜索不仅存在于匹配行中而且存在于该行之后的上下文中的行。 – 2009-12-19 04:49:13