2013-11-27 132 views
-1

即時消息正在搜索一個文件,並且當我找到找到的單詞時,我希望它打印出下面的8行字。請記住我是一個完整的noob,只有這樣做了幾個星期。這是我有,但它不起作用(顯然!):Python搜索一個.txt文件,當找到一個匹配時,在匹配的單詞後面打印多行

name = input("What did you put as the calculation name?: ") 
saved_calcs = open("saved_calcs.txt", "r") 
lines = saved_calcs.read() 
i = lines.index(name) 
for line in lines[i-0:i+9]: 
    print (line) 
saved_calcs.close() 
+0

你可能想'lines = saved_calc.readlines()'代替。 – rlms

回答

0

不知道這是你在找什麼,但如果你輸入從文件中一行的內容完全匹配,代碼可能是這樣的:

name = input("What did you put as the calculation name?: ") 
saved_calcs = open("saved_calcs.txt", "r") 
lines = saved_calcs.read() 
split_lines = lines.split("\n") 
index = split_lines.index(str(name))+1 
for line in split_lines[index:index+8]: 
    print line 
saved_calcs.close() 
+0

多數民衆贊成真棒!謝謝! – user3042173

1

lines.index將查找一個名稱的行。 您需要檢查線路並搜索您的字符串。

i = -1 
for x, line in enumerate(lines): 
    if line.find(name) != -1: 
     i = x 
     break 
.... 
相關問題