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)
我正在从事一个机器学习项目,该项目从所有电子邮件中过滤 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)