在Python中从下到上搜索

时间:2015-08-21 14:37:56

标签: python search

我正在尝试找到一种方法来搜索文件而不是向下搜索并显示它找到的行。

所以现在我搜索一个文档并找到我要查找的行并打印出来。我希望能够从那个位置搜索到我找到不同的行打印,然后继续搜索文档。

我已经全神贯注地寻找答案,并且已经找到了其他语言的东西,但它们在Python中不起作用。

with open(currFile, "r") as f:
    searchlines = f.readlines()

for i, line in enumerate(searchlines):
    if "(F)" in line: 
        for l in searchlines[i:i+5]: print >> outfile, l, 

2 个答案:

答案 0 :(得分:1)

您可以这样做以获得反转片段:

searchlines[i-1:i-5:-1]

e.g:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(10)[4:2:-1]
[4, 3]

除了切片之外,您还可以按相反的顺序遍历索引:

for j in xrange(i - 1, i - 5, -1):
    l = searchlines[j] 
    # see if the line is what you want

答案 1 :(得分:0)

在处理文件时,列表理解通常是你的朋友:

with open("MyFile.txt","r") as f:
    lines = [line.strip() for line in f]

从那里你使用for循环遍历这些行:

for i,line in enumerate(line):
    if SomeCondition:
        print(line)
        for prevLine in lines[i-1::-1]:
            if SomeOtherCondition:
                print(prevLine)
                break

希望这会有所帮助:)