2016-06-13 98 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)