为了毕业,我必须为我的论文编写一个简单的垃圾邮件过滤器。我的目的是打开并阅读两个不同的列表,一个用于垃圾邮件,另一个用于火腿。名字(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))
答案 0 :(得分:0)
你在for循环中有return语句。它将在第一次迭代后退出函数。如果您按如下方式更改代码,那将是正确的。 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))