我需要在调试文件中搜索特定的字符串或错误,然后,一旦找到它,查找文件6行,然后打印上面第6行所包含的内容。
import linecache
file = "/file.txt"
fh = open("/file.txt", "r")
lookup = 'No Output'
with fh as myFile:
for num, line in enumerate(myFile, 1):
if lookup in line:
numUp = num + 6
new = linecache.getline(file, numUp)
print new
我尝试添加" num + = 6"每当我找到"我需要搜索的词语"但我的输出是空白或我收到此错误:
File "testRead.py", line 12
print new
^
IndentationError: unexpected indent
如果还有另一种做法"搜索,那么扫描n行,然后打印/返回"以一种逐行的方式,我也很高兴知道,因为我正在处理的文件大小差异很大。
我提升了我通常看到的一些事情的示例文件:http://pastebin.com/mzvCfZid 每当我点击字符串"(错误:无输出)"时,我需要找到它的相关ID,即错误上方的6行。所以"没有输出是我需要搜索的内容。
::编辑::
答案 0 :(得分:0)
您需要deque
的功能:
>>> from collections import deque
>>>
>>> lines = deque(maxlen = 7)
>>> for i in range(35):
... lines.append(i)
...
>>> print lines
# Note your 6 lines earlier would be lines[0] here.
deque([28, 29, 30, 31, 32, 33, 34], maxlen=7)