2016-04-25 16 views
1

次のコードは、テキストファイルを行単位で検索して、不正な行をフィルタリングし、その新しい行を新しいファイルに追加します。なんらかの理由で、ファイルは ' - 'の行だけを返し、他の単語には応答しません。テキストファイルから1行の単語を検索するときに、特定の単語が表示されない

このコードに問題が発生している可能性がありますか?それとも、テキストファイルに問題がありそうですか?

import re 
new=open('FilteredData.txt', 'w') 
f=open('ClusteredData.txt', 'r') 
line = f.readline() 

while line: 
    reResult = re.search(r'-',line, re.I) 
    reResult1 = re.search(r'by', line, re.I) 
    reResult2=re.search(r'ft', line, re.I) 
    reResult3=re.search(r'feat', line, re.I) 
    reResult4=re.search(r'f\.', line, re.I) 

    if reResult or reResult1 or reResult2 or reResult3 or reResult4: 
     new.write(line) 

    line = f.readline() 
+1

あなたの新しいファイルを表示してください –

+0

多くのリンクが含まれているため、TwitterのAPIからリッピングされたツイートです。 – erk499

+0

なぜあなたは5種類の 're'検索をしていますか? 'r'- | by | ft | feat | f \ 'のすべてに一致する単一の正規表現を作ることができます。' – Barmar

答えて

1

以前は、テキストエンコードの問題で同様の問題が発生しました。コードは私にとってはうまく見えますが、UTF-8エンコーディング以外のASCII以外の文字を使わずにテキストファイルを実行しています。新しいテキストファイルに不具合がありますか?存在する場合は、テキストファイル自体に問題がある可能性があります。テキストが正しいエンコードでエンコードされていることを確認してください。

おそらく、テキストファイルの小さなサブセットでコードを実行して、それが機能するかどうかを確認してください。

+0

ありがとう、これはうまくいきました。私はUTF-16でそれを持っていましたが、UTF-8に変更しました。 – erk499

関連する問題