2016-04-25 2 views
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

Это не позволит мне показать его, потому что он содержит много ссылок, это твиты, вырванные из API twitter. – erk499

+0

Почему вы делаете 5 различных поисков 're'? Вы можете создать одно регулярное выражение, соответствующее всем параметрам 'r'- | by | ft | feat | f \. '' – Barmar

ответ

1

У меня возникла аналогичная проблема раньше из-за проблем с кодировкой текста. Код выглядит хорошо для меня, я запустил его в текстовом файле без каких-либо символов, отличных от ascii, с кодировкой UTF-8, и он работает. Есть ли таблеток в вашем новом текстовом файле? Если есть, это, вероятно, проблема с самим текстовым файлом. Попробуйте проверить, что ваш текст закодирован с правильной кодировкой.

Возможно, попробуйте запустить код на небольшом подмножестве текстового файла и посмотреть, работает ли он.

+0

Спасибо, что это сработало, у меня было это с UTF-16, и я сменил его на UTF-8. – erk499

Смежные вопросы