首页 > 解决方案 > 从防火墙日志解析数据并找到“蠕虫”时出现问题

问题描述

我正在努力尝试查看我的代码有什么问题。我是 python 新手。

import os

uniqueWorms = set()
logLineList = []

with open("redhat.txt", 'r') as logFile:
    for eachLine in logFile:
        logLineList.append(eachLine.split())
    for eachColumn in logLineList:
        if 'worm' in eachColumn.lower():
            uniqueWorms.append()
            print (uniqueWorms)

标签: pythonpython-3.x

解决方案


eachLine.split()返回单词列表。当您将其附加到 时logLineList,它将成为列表的二维列表。

然后,当您遍历它时,它eachColumn是一个列表,而不是单个列。

如果您想logLineList成为单词列表,请使用

logLineList += eachLine.split()

代替

logLineList.append(eachLine.split())

最后,uniqueWorms.append()应该是uniqueWOrms.append(eachColumn)。并且print(uniqueWorms)应该在循环之外,因此您只看到最终结果,而不是每次添加蠕虫。


推荐阅读