我遇到了Python程序的问题。我正在尝试从html文件中读取内容,删除html标记然后删除停用词。
实际上,我可以删除标签,但我无法删除停用词。程序从文本文件中获取它们并将它们存储在列表中。该文件的格式如下:
a
about
an
...
yours
如果我在Python解释器中逐步测试我的代码,它可以工作,但是当我执行'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()
我希望你能帮助我
答案 0 :(得分:4)
这里的问题是您没有保存textContent.replace(word, '')
的结果。 replace
函数不会修改textContent
变量;而是返回结果。
因此,您需要将结果保存回textContent
。所以
textContent.replace(word, '')
应该是:
textContent = textContent.replace(word, '')