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

EDIT:

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)2つのカテゴリがありますが、何らかの理由でAVERAGEHEIGHTとTOTAL HEIGHTでしか動作していません...奇妙な –

+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) 
関連する問題