当序列为多行时,从关键字打印到序列的结尾

时间:2016-02-17 09:43:51

标签: python parsing sequence

如何从一行(从具有换行值的单个列数组中的.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')

三江源

2 个答案:

答案 0 :(得分:0)

这应该有效:

f=open('toto2.txt','r')
    for line in f:
        if 'keyword' in line:
            print line

答案 1 :(得分: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之后放置打印功能。

使用文件的示例:

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())来避免打印之间的换行符。