从文本文件中提取某些行

时间:2016-06-13 19:15:32

标签: python

所以我有一个文本文件,我试图从中提取包含特定单词的某些行。想要的行是包含单词HEIGHT的行,但是我的文本文件中有另一个类别叫做AVERAGEHEIGHT。因此,当我运行此代码时,它会提取包含HEIGHT和AVERAGEHEIGHT的所有行,因为我只对HEIGHT感兴趣。有办法解决这个问题吗?

这是我的代码行

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

提前感谢您对此事的任何建议。

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分:1)

你可以这样做:

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)