Python - 尝试创建一个简单的反垃圾邮件过滤器

时间:2016-10-20 08:55:04

标签: python input spam

为了毕业,我必须为我的论文编写一个简单的垃圾邮件过滤器。我的目的是打开并阅读两个不同的列表,一个用于垃圾邮件,另一个用于火腿。名字(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))

1 个答案:

答案 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))