2016-02-17 26 views
0

如何從一行(從具有換行分隔值的單列數組中的.txt文件)打印到序列的最後幾行但並不總是相同數量的線。從關鍵字到序列結束時從序列中打印多行

使用python 3.3。

我只想對某些數據的序列條目包含關鍵字的那些

我在想什麼線這樣的:

with open('filename.txt') as f: 
    for line in f: 
     cache.append(line) 

    for line in range(len(cache)): 
     if 'keyword' in cache[line].lower(): 
      print line 

#however i need to print the next line which is the start of the sequence and 
#continue this until the end (I guess this could be ' " ' or 'keyword2') 

三江源

+0

你可以發佈一個輸入數據的例子並顯示預期的輸出嗎? – mhawke

回答

0

這應該工作:

f=open('toto2.txt','r') 
    for line in f: 
     if 'keyword' in line: 
      print line 
0
kw0='d' 
kw1='q' 

with open('fn.txt', 'r') as f: 
    for line in f: 
     if kw0 in line: 
      print(line) 
      for nextline in f: 
       print(nextline) 
       if kw1 not in nextline: 
        break 

有點嵌套,但當你使用相同的f它應該工作。如果你不想顯示kw1行,可以在if block之後放置打印功能。

示例使用文件:

a b c 
d e f 
d e f 
g h i 
abq 
123 abc 
d 
q 

我們得到的輸出:

d e f 
d e f 
g h i 
abq 
d 
q 

最好的部分是:沒有必要緩存一切。

可以使用print(line,end='')print(line.strip())來避免打印之間的換行。