Python - 网络钓鱼数据集文件即使存在也未被检测到

Python - Phishing dataset file not being detected even though it exists

我正在从事一个机器学习项目,该项目从所有电子邮件中过滤 spam/phishing 封电子邮件。为此,我使用了 SpamAssassin 数据集。数据集包含这种格式的不同邮件:

现在我识别 phishing/spam 电子邮件的第一个任务是找出电子邮件中存在的 no.of 网络链接。为此,我编写了以下代码:

wordsInLine = []
tempWord = []
urlList = []


def count():
    flag = 0
    print("Reading all file names in sorted order")
    for filename in sorted(os.listdir("C:/Users/keert/Downloads/Spam_Assassin/spam")):
        file=open(filename)
        count1 = 0
        for line in file:
            
            wordsInLine = line.split(' ')
            for word in wordsInLine:
                
                if re.search('href="http',word,re.I):
                    count1=count1+1

        file.close()
        urlList.append(count1)
        if flag!=0:
            print("File Name = " + filename)
            print ("Number of links = ",count1)
        flag = flag + 1

count()
final = urlList[1:]
print("List of number of links in each email")
print(final)

with open('count_links.csv', 'wb') as myfile:
    wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
    for val in final:
        wr.writerow([val])

print("CSV file generated")

但是我收到一条错误消息,提示该文件不存在。错误是:

而文件实际存在于文件夹中。这是屏幕截图:

注意:我还尝试使用 os.path.isfile() 函数检查文件是否存在,但同样返回 false。请有人给我建议一个解决方案。提前谢谢你。

这是因为您没有从该目录读取文件。 os.listdir 只会给你一个文件名列表而不是绝对路径

您必须执行类似这样的操作才能指向基本目录

base_dir = "C:/Users/keert/Downloads/Spam_Assassin/spam"
for filename in sorted(os.listdir(base_dir)):
    file=open(os.path.join(base_dir, filename)