2013-07-24 78 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