2013-07-24 5 views
0

У меня проблема с программой на Python. Я пытаюсь прочитать содержимое из html-файла, удалив теги html и затем удалив стоп-слова.Заменить подстроку в строке

На самом деле, я мог удалить теги, но я не могу удалить слова остановки. Программа получает их из текстового файла и сохраняет их в списке. Формат этого файла следующий:

a 
about 
an 
... 
yours 

Если я проверить мой шаг за шагом кода в Python интерпретатора, он работает, но когда я делаю «питона main.py» не работает

Мой код:

from HTMLParser import HTMLParser 

class MLStripper(HTMLParser): 
    def __init__(self): 
     self.reset() 
     self.fed = [] 
    def handle_data(self, d): 
     self.fed.append(d) 
    def get_data(self): 
     return ''.join(self.fed) 

def strip_tags(html): 
    s = MLStripper() 
    s.feed(html) 
    return s.get_data() 

def remove_stop_words(textContent, stopWords): 
    for stopWord in stopWords: 
     word = stopWord.replace('\n','') + ' ' 
     textContent.replace(word, '') 
    return textContent 


def main(): 
    stopWords = open("stopWords.txt", "r").readlines() 
    emailContent = open("mail.html", "r").read() 
    textContent = strip_tags(emailContent) 
    print remove_stop_words(textContent.lower(), stopWords) 

main() 

Я надеюсь, что вы можете мне помочь

ответ

4

проблема здесь в том, что вы не сохранение результата textContent.replace(word, ''). функция replace не изменяет переменную textContent на месте; скорее результат возвращается.

Таким образом, вы должны сохранить результаты до textContent. Так

textContent.replace(word, '') 

должно быть:

textContent = textContent.replace(word, '') 
+0

D'о Проблема решена, спасибо :) – imarban

+0

Мы всегда рады Вам! – jh314

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