2009-12-18 110 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