2016-06-13 56 views
1

所以我有一个文本文件,我试图从中提取包含特定单词的某些行。这些行是希望包含HEIGHT字的行,但是在我的文本文件中还有另一个名为AVERAGEHEIGHT的类别。所以当我运行这段代码时,它会提取包含HEIGHT和AVERAGEHEIGHT的所有行,因为我只对HEIGHT感兴趣。有没有办法来解决这个问题?从文本文件中提取某些行

这里是我的代码行此

open('height.txt','w').writelines([ line for line in open("Test1.txt") if "HEIGHT" in line]) 

提前感谢对此事的任何意见。

回答

1

我能想到的,不知道你输入的其余部分最简单的方法,将如下所示:

open('height.txt','w').writelines([ line for line in open("Test1.txt") if "HEIGHT" in line and "AVERAGEHEIGHT" not in line]) 

编辑:

open('height.txt','w').writelines([ line for line in open("Test1.txt") if "HEIGHT" in line and "AVERAGEHEIGHT" not in line and "TOTAL HEIGHT" not in line]) 
+0

这非常有道理,但它并不完全适合我。实际上,我想避免两个类别(AVERAGEHEIGHT和TOTAL HEIGHT),它仅适用于AVERAGEHEIGHT而不适用于某些原因的总高度......奇怪的 –

+0

您从未提及过TOTAL HEIGHT的限制,请参阅我的编辑 – Brian

+0

是的,即使它不承认它,我已经完全按照从文本文件中复制它,但它仍然显示出来,我很感激你试图帮助,但再次感谢。 –

0

你可以这样说:

with open('linestoread.txt') as f: 
    our_lines = f.readlines() 
    for l in our_lines: 
     if 'HEIGHT' in l and not 'AVERAGEHEIGHT' in l: 
       with open('height.txt', 'a') as f: 
        f.writelines(l)