【发布时间】:2016-10-20 08:55:03
【问题描述】:
我必须为毕业论文编写一个简单的垃圾邮件过滤器。我的目的是打开并阅读两个不同的列表,一个是垃圾邮件,一个是火腿。名称(cartella)就像英文中的文件夹。问题是当我打印垃圾邮件时,它只打印数组spam[0] 的第一个元素,当我打印长度时它打印1,但它应该打印1500。问题出在函数中。我需要帮助。
这是我的代码:
import nltk
import os
def importalista(cartella):
lista=[]
listafile=os.listdir(cartella)
for file in listafile:
f=open(cartella + file, 'r+')
lista.append(f.read())
f.close()
return lista
spam = importalista('C:\\enron1\\spam\\')
ham = importalista('C:\\enron1\\ham\\')
print(len(spam))
【问题讨论】:
-
由于
return语句在您的for循环内,因此您的循环只会运行一次迭代。如果将return移出for循环,它将在for循环完成后返回。 -
你的return语句不应该缩进,对吧?现在您在阅读第一个文件后返回。
-
感谢您的回复.. 那么我应该把回线放在哪里?